Como posso obter windowWidth
, windowHeight
, pageWidth
, pageHeight
, screenWidth
, screenHeight
, pageX
, pageY
, screenX
, screenY
que irá funcionar em todos os principais navegadores?
2018
Como posso obter windowWidth
, windowHeight
, pageWidth
, pageHeight
, screenWidth
, screenHeight
, pageX
, pageY
, screenX
, screenY
que irá funcionar em todos os principais navegadores?
Respostas:
Você pode obter o tamanho da janela ou documento com o jQuery:
Para o tamanho da tela, você pode usar o
screen
objeto:fonte
46
) em vez de uma string como css ('height') ("46px"
).Isso tem tudo o que você precisa saber: obter tamanho da janela de exibição / janela
mas em resumo:
Violino
Pare de editar esta resposta. Agora, ela foi editada 22 vezes por pessoas diferentes para corresponder à sua preferência de formato de código. Também foi apontado que isso não é necessário se você deseja segmentar apenas navegadores modernos - nesse caso, você só precisa do seguinte:
fonte
g = document.body
?document.body
.Aqui está uma solução de navegador cruzado com JavaScript puro ( fonte ):
fonte
body element
valor retornaráundefined
como o dom ainda não foi carregado.Uma maneira não-jQuery de obter a dimensão da tela disponível.
window.screen.width/height
já foi apresentado, mas, por um design responsivo e integridade, acho que vale a pena mencionar esses atributos:http://www.quirksmode.org/dom/w3c_cssom.html#t10 :
fonte
window.screen.availHeight
parece assumir o modo de tela cheia para que o modo de tela normal force a rolagem (testado no Firefox e Chrome).window.screen.height
.Mas quando falamos sobre telas responsivas e se queremos lidar com isso usando jQuery por algum motivo,
dá a medida correta. Mesmo ele remove o espaço extra da barra de rolagem e não precisamos nos preocupar em ajustar esse espaço :)
fonte
window.innerWidth
ewindow.innerHeight
não consideramos o tamanho da barra de rolagem. Se houver barras de rolagem, esses métodos retornam resultados incorretos para o tamanho da janela em quase todos os navegadores da área de trabalho. Veja stackoverflow.com/a/31655549/508355Você também pode obter a largura e a altura da JANELA, evitando barras de ferramentas do navegador e outras coisas. É a verdadeira área útil na janela do navegador .
Para fazer isso, use:
window.innerWidth
andwindow.innerHeight
properties ( consulte o documento em w3schools ).Na maioria dos casos, será a melhor maneira, por exemplo, de exibir um diálogo modal flutuante perfeitamente centralizado. Permite calcular posições na janela, independentemente da orientação da resolução ou tamanho da janela usando o navegador.
fonte
fonte
Para verificar a altura e a largura da página carregada atual de qualquer site usando o "console" ou depois de clicar em "Inspecionar" .
passo 1 : clique no botão direito do mouse, clique em 'Inspecionar' e, em seguida, clique em 'console'
passo 2 : verifique se a tela do navegador não está no modo 'maximizar'. Se a tela do navegador estiver no modo 'maximizar', você deverá primeiro clicar no botão maximizar (presente no canto superior direito ou esquerdo) e des maximizá-lo.
etapa 3 : Agora, escreva o seguinte após o sinal de maior que ('>')
fonte
Se você precisar de uma solução verdadeiramente à prova de balas para a largura e altura do documento (a
pageWidth
epageHeight
na figura), considere usar um plugin meu, jQuery.documentSize .Ele tem apenas um objetivo: sempre retornar o tamanho correto do documento, mesmo em cenários em que o jQuery e outros métodos falham . Apesar do nome, você não precisa necessariamente usar o jQuery - ele é escrito em Javascript baunilha e funciona sem o jQuery também.
Uso:
para o global
document
. Para outros documentos, por exemplo, em um iframe incorporado ao qual você tem acesso, passe o documento como um parâmetro:Atualização: agora também para as dimensões da janela
Desde a versão 1.1.0, o jQuery.documentSize também lida com as dimensões da janela.
Isso é necessário porque
$( window ).height()
é buggy no iOS , a ponto de ser inútil$( window ).width()
e não$( window ).height()
são confiáveis no celular porque não lidam com os efeitos do zoom no celular.O jQuery.documentSize fornece
$.windowWidth()
e$.windowHeight()
, que resolve esses problemas. Para mais informações, consulte a documentação .fonte
Eu escrevi um pequeno bookmarklet javascript que você pode usar para exibir o tamanho. Você pode adicioná-lo facilmente ao seu navegador e sempre que clicar nele, verá o tamanho no canto direito da janela do navegador.
Aqui você encontra informações sobre como usar um bookmarklet https://en.wikipedia.org/wiki/Bookmarklet
Bookmarklet
Código original
O código original está no café:
Basicamente, o código está anexando uma pequena div que é atualizada quando você redimensiona sua janela.
fonte
Em alguns casos, relacionados ao layout responsivo,
$(document).height()
podem retornar dados incorretos que exibem apenas a altura da porta de exibição. Por exemplo, quando algum wrapper div # tem height: 100%, esse #wrapper pode ser esticado por algum bloco dentro dele. Mas sua altura ainda será como a altura da janela de exibição. Em tal situação, você pode usarIsso representa o tamanho real do wrapper.
fonte
Guia completo relacionado aos tamanhos de tela
Javascript
Para altura:
Nota: Quando a janela é maximizada, será igual a tela.
Para largura:
Jquery
Para altura:
Para largura:
Referência: https://help.optimizely.com/Build_Campaigns_and_Experiments/Use_screen_measurements_to_design_for_responsive_breakpoints
fonte
Eu desenvolvi uma biblioteca para saber o tamanho real da janela de visualização para navegadores de desktops e celulares, porque o tamanho da janela de visualização é inconsistente entre os dispositivos e não pode contar com todas as respostas dessa publicação (de acordo com todas as pesquisas que fiz sobre isso): https: // github .com / pyrsmk / W
fonte
Às vezes, você precisa ver as alterações de largura / altura enquanto redimensiona a janela e o conteúdo interno.
Para isso, escrevi um pequeno script que adiciona uma caixa de log que monitora dinamicamente todo o redimensionamento e atualizações quase que imediatas.
Ele adiciona um HTML válido com posição fixa e alto índice z, mas é pequeno o suficiente, portanto você possa :
Testado em: Chrome 40, IE11, mas é altamente possível trabalhar em outros navegadores mais antigos também ... :)
EDIT: Agora os estilos são aplicados apenas ao elemento da tabela de logger - não a todas as tabelas - também é uma solução sem jQuery :)
fonte
Com a introdução de
globalThis
no ES2020 você pode usar imóveis como.Para tamanho da tela:
Para tamanho da janela
Para deslocamento:
...& em breve.
fonte
Você pode usar a tela objeto para obter isso.
A seguir, é apresentado um exemplo do que retornaria:
Para obter sua
screenWidth
variável, basta usarscreen.width
, mesmo comscreenHeight
, você usariascreen.height
.Para obter a largura e altura da janela, seria
screen.availWidth
ouscreen.availHeight
respectivamente.Para as variáveis
pageX
epageY
, usewindow.screenX or Y
. Observe que isso é da tela MUITO ESQUERDA / SUPERIOR DA TELA ESQUERDA / SUPERIOR . Portanto, se você tiver duas telas de largura1920
, uma janela de 500px à esquerda da tela direita teria um valor X de2420
(1920 + 500).screen.width/height
, no entanto, exiba a largura ou a altura da tela ATUAL.Para obter a largura e a altura da sua página, use jQuery
$(window).height()
ou$(window).width()
.Novamente usando jQuery, uso
$("html").offset().top
e$("html").offset().left
para os seuspageX
epageY
valores.fonte
aqui está a minha solução!
fonte
Foi assim que consegui obter a largura da tela no projeto React JS:
Se a largura for igual a 1680, retorne 570 e retorne 200
Screen.availWidth
fonte