A escala mencionada aqui não se refere à escala do tamanho do navegador, mas à escala de porcentagem do conteúdo da Web do navegador (pressione as teclas CTRL e + Sign ou as teclas de sinal).
Existem muitas maneiras de detectar esse tipo de escala. O QQ Space usa flash para detectar se o navegador está escalando. Aqui está um método JavaScript para detectar a escala do navegador.
Para o IE6, eu apenas ignoro porque o IE6 só pode dimensionar o texto.
Vamos falar sobre a interface de detecção padrão fornecida pelo navegador. Window.DevicePixelratio é a proporção de pixels físicos no dispositivo e pixels independentes do dispositivo. Esse atributo pode ser usado para detectar se a página da web está escalada. Em um navegador PC normal, o valor padrão é 1 se não houver zoom por padrão. Atualmente, Firefox, Chrome etc. são bem suportados.
Bem, é hora de falar sobre como o IE é tratado. O IE fornece dois atributos: window.screen.devicexdpi e window.screen.logicalxdpi. DeviceXDPI é os pixels físicos correspondentes no dispositivo, e Logicxdpi é a proporção de pixels independentes do dispositivo. A interface de detecção do padrão de estimativa também é baseada em uma melhoria do método do IE. O valor padrão desses dois atributos nos sistemas acima do Windows XP+ é 96, porque o valor padrão do sistema é 96dpi.
Para os navegadores que não suportam os dois acima, você também pode usar as duas propriedades da janela. A largura externa retorna a largura externa real do elemento da janela, a largura interna retorna a largura interna real do elemento da janela, ambas as larguras incluem a largura, incluindo a barra de rolagem.
Com esses atributos, você pode basicamente resolver navegadores comuns nos navegadores de PC. O código de implementação é o seguinte:
Se o valor de retorno da função Detectzoom for 100, é o nível de zoom padrão, se for maior que 100, será aumentado e se for menor que 100, será encolhido.
função detectzoom () {var ratio = 0, tela = window.screen, ua = navegator.userAgent.tolowerCase (); if (window.devicePixelratio! == indefinido) {ratio = window.devicePixelratio; } else if (~ ua.indexof ('msie')) {if (screen.devicexdpi && screen.logicalxdpi) {ratio = screen.devicexdpi / screen.logicalxdpi; }} else if (window.outerwidth! == indefinido && window.innerwidth! == indefinido) {ratio = window.outerwidth / window.innerwidth; } if (ratio) {ratio = math.round (razão * 100); } taxa de retorno;};Artigos originais, por favor, indique a reimpressão: reimpressa do desenvolvimento do front-end