Neste artigo você vai aprender a como detectar resolução da tela com JavaScript, vem conferir como é simples fazer isso!
Fala programador(a), beleza? Bora aprender mais sobre JavaScript!
Introdução
A resolução da tela é uma medida importante quando se trata de desenvolver aplicativos e sites responsivos.
A resolução da tela refere-se ao número total de pixels na tela, geralmente expressa como a largura e a altura em pixels.
Ao detectar a resolução da tela, os desenvolvedores podem ajustar o layout e a funcionalidade de seus aplicativos para oferecer uma experiência de usuário otimizada em diferentes dispositivos e tamanhos de tela.
Neste artigo, vamos explorar como detectar a resolução da tela com JavaScript.
Acessando a resolução da tela com window.screen
A maneira mais simples de detectar a resolução da tela com JavaScript é acessar as propriedades width
e height
do objeto window.screen
.
Essas propriedades retornam a largura e a altura totais da tela em pixels.
const screenWidth = window.screen.width; const screenHeight = window.screen.height; console.log(`Resolução da tela: ${screenWidth}x${screenHeight}`);
Este exemplo exibe a resolução da tela no formato “Resolução da tela: largura x altura”.
Observe que as propriedades width
e height
do objeto window.screen
retornam a resolução real do dispositivo, não a resolução do navegador ou da janela de visualização.
Acessando a resolução da janela de visualização com window.innerWidth e window.innerHeight
Se você deseja detectar a resolução da janela de visualização do navegador em vez da resolução da tela, pode usar as propriedades window.innerWidth
e window.innerHeight
.
Essas propriedades retornam a largura e a altura da área de conteúdo da janela de visualização, incluindo barras de rolagem, se houver.
const viewportWidth = window.innerWidth; const viewportHeight = window.innerHeight; console.log(`Resolução da janela de visualização: ${viewportWidth}x${viewportHeight}`);
Este exemplo exibe a resolução da janela de visualização no formato “Resolução da janela de visualização: largura x altura”.
Observe que as propriedades window.innerWidth
e window.innerHeight
podem mudar quando o usuário redimensiona a janela do navegador.
Ouvindo eventos de redimensionamento da janela
Em muitos casos, você pode querer ajustar seu aplicativo dinamicamente quando a resolução da tela ou da janela de visualização muda.
Para fazer isso, você pode adicionar um ouvinte de evento para o evento resize
da janela.
window.addEventListener("resize", () => { const viewportWidth = window.innerWidth; const viewportHeight = window.innerHeight; console.log(`Resolução da janela de visualização: ${viewportWidth}x${viewportHeight}`); });
Este exemplo adiciona um ouvinte de evento que é chamado sempre que a janela do navegador é redimensionada.
Ele exibe a resolução atual da janela de visualização no formato “Resolução da janela de visualização: largura x altura”.
Considerações de desempenho
Ao detectar a resolução da tela com JavaScript e ajustar seu aplicativo dinamicamente, é importante considerar o desempenho.
Ouvir eventos de redimensionamento da janela e atualizar o layout e a funcionalidade do aplicativo pode ser intensivo em recursos, especialmente se a janela for redimensionada com frequência ou se o aplicativo for complexo.
Aqui estão algumas dicas para melhorar o desempenho ao lidar com a resolução da tela:
Throttling e Debouncing
Throttling e debouncing são técnicas que ajudam a limitar a taxa de chamadas de uma função.
Ao utilizar essas técnicas, você pode garantir que seu aplicativo não seja sobrecarregado com chamadas desnecessárias de função durante eventos de redimensionamento.
Throttling limita a taxa de chamadas de função, garantindo que a função seja chamada no máximo uma vez a cada ‘x’ milissegundos.
Debouncing, por outro lado, agrupa várias chamadas de função juntas e chama a função apenas uma vez após um determinado intervalo de tempo ter passado.
function debounce(func, wait) { let timeout; return function () { const context = this; const args = arguments; clearTimeout(timeout); timeout = setTimeout(() => { func.apply(context, args); }, wait); }; } window.addEventListener( "resize", debounce(() => { const viewportWidth = window.innerWidth; const viewportHeight = window.innerHeight; console.log(`Resolução da janela de visualização: ${viewportWidth}x${viewportHeight}`); }, 250) );
Neste exemplo, a função debounce é usada para limitar a taxa de chamadas do ouvinte de evento de redimensionamento.
Atualizações seletivas
Em vez de atualizar todo o layout e a funcionalidade do aplicativo a cada evento de redimensionamento, considere atualizar apenas os elementos que são afetados pela mudança na resolução.
Isso pode melhorar significativamente o desempenho e reduzir a carga na CPU.
Quer aprender mais sobre JavaScript? Confira o vídeo abaixo:
Conclusão
Neste artigo, exploramos como detectar a resolução da tela e da janela de visualização com JavaScript e como ajustar o layout e a funcionalidade do aplicativo dinamicamente com base na resolução.
Discutimos o uso do objeto window.screen
e das propriedades window.innerWidth
e window.innerHeight
, bem como técnicas para melhorar o desempenho, como throttling, debouncing e atualizações seletivas.
Ao utilizar essas técnicas, você pode criar aplicativos e sites responsivos que oferecem uma experiência de usuário otimizada em diferentes dispositivos e tamanhos de tela.
Está buscando em evoluir como Programador? Confira o nossos cursos clicando aqui.
Nosso principal objetivo é tornar você um dev profissional que é capaz de resolver problemas de alta dificuldade e criar projetos complexos, através de uma metodologia planejada nos mínimos detalhes, após formar muitos outros desenvolvedores.
Cursos com vários projetos, exercícios, material apoio, comunidade de alunos e muito mais!
E a implementação dessa função Throttling , como seria?