Como obtenho a altura e a largura da janela de visualização do navegador sem barras de rolagem usando jQuery?
Aqui está o que tentei até agora:
var viewportWidth = $("body").innerWidth();
var viewportHeight = $("body").innerHeight();
Esta solução não leva em consideração as barras de rolagem do navegador.
Respostas:
Mais informações
Usar jQuery não é essencial para obter esses valores, no entanto. Usar
para obter tamanhos, excluindo barras de rolagem, ou
para obter toda a janela de visualização, incluindo barras de rolagem.
fonte
Não use jQuery, apenas use javascript para o resultado correto:
Isso inclui largura / altura da barra de rolagem:
Isso exclui a largura / altura da barra de rolagem:
fonte
Aqui está um JS genérico que deve funcionar na maioria dos navegadores (FF, Cr, IE6 +):
fonte
Você está usando as chamadas de método incorretas. Uma janela de visualização é a "janela" que se abre no documento: quanto você pode ver e onde.
Usar
$(window).height()
não fornecerá o tamanho da janela de visualização, mas sim o tamanho da janela inteira, que normalmente é o tamanho do documento inteiro, embora o documento possa ser ainda maior.Para obter o tamanho do visor real, use
window.innerHeight
ewindow.innerWidth
.https://gist.github.com/bohman/1351439
Não use os métodos jQuery, por exemplo
$(window).innerHeight()
, pois eles fornecem números errados. Eles fornecem a altura da janela, nãoinnerHeight
.fonte
window.innerWidth
retorna a largura da janela de visualização + a largura da barra de rolagem. o que posso fazer nesta situação?Descrição
O seguinte fornecerá o tamanho da janela de visualização do navegador.
Amostra
Mais Informações
fonte
Como Kyle sugeriu, você pode medir o tamanho da janela de visualização do navegador do cliente sem levar em conta o tamanho das barras de rolagem dessa forma.
Amostra (dimensões da viewport SEM barras de rolagem)
Alternativamente, se você deseja encontrar as dimensões da janela de visualização do cliente, levando em consideração o tamanho das barras de rolagem, então este exemplo abaixo é o mais adequado para você.
Primeiro, não se esqueça de definir sua tag de corpo para ter 100% de largura e altura apenas para ter certeza de que a medição é precisa.
Amostra (dimensões da viewport COM barras de rolagem)
fonte
O script
$(window).height()
funciona bem (mostrando a altura da janela de visualização e não o documento com altura de rolagem), MAS ele precisa que você coloque corretamente a tag doctype em seu documento, por exemplo, estes doctypes:Para html5:
<!doctype html>
para html4 transicional:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Provavelmente o doctype padrão assumido por alguns navegadores é tal, que
$(window).height()
leva a altura do documento e não a altura do navegador. Com a especificação doctype, é resolvido de forma satisfatória, e tenho certeza que seus peps evitarão "alterar o estouro de rolagem para oculto e depois de volta", o que é, desculpe, um truque um tanto sujo, especialmente se você não t documente no código para uso futuro do programador.Além disso, se você está fazendo um script, pode inventar testes para ajudar os programadores em suas bibliotecas, deixe-me inventar alguns:
fonte
fonte
Usando jQuery ...
$ (document) .height () & $ (window) .height () retornará os mesmos valores ... a chave é redefinir o preenchimento e a margem do corpo para que você não obtenha rolagem.
Espero que isto ajude.
fonte
Eu queria um visual diferente do meu site para tela larga e tela pequena. Fiz 2 arquivos CSS. Em Java eu escolho qual dos 2 arquivos CSS é usado, dependendo da largura da tela. Eu uso a função PHP
echo
com naecho
função-algum javascript.meu código na
<header>
seção do meu arquivo PHP:fonte