Neste artigo você aprenderá a verificar se elemento está visível ao scrollar, ou seja, quando o usuário ativar o scroll, verificamos se um elemento está visível

verificar se elemento está visível ao scrollar capa

Fala programador(a), beleza? Bora aprender mais sobre posicionamento de elementos, scroll e também JavaScript!

Primeiramente precisaremos selecionar o elemento com algum método de DOM

Desta maneira será possível acessar as suas posições, com o método getBoundingClientRect

Vamos extrair as posições do topo e também do fim do elemento, então o scroll funciona das duas maneiras

Ou seja, indo para cima ou para baixo

Depois disso é só validar se o elemento está presente na janela

Para cima validamos se o top é maior ou igual a 0

E para baixo, validamos se o elemento é menor ou igual a altura atual da janela

Veja um exemplo prático do código necessário:

<p id="meu-paragrafo">Meu texto</p>

Este será nosso elemento alvo no HTML

Agora o código JS:

const p = document.querySelector("#meu-paragrafo")

function estaVisivel(el) {

    const posicoes = el.getBoundingClientRect();
    const inicio = posicoes.top;
    const fim = posicoes.bottom;

    let estaVisivel = false
    
    if((inicio >= 0) && (fim <= window.innerHeight)) {
			estaVisivel = true;
    }
    
    return estaVisivel;
    
}

console.log(estaVisivel(p))

Conforme explicado anteriormente, selecionamos o elemento primeiro

A função é criada posteriormente, mas a ordem não importa

Depois dentro dela, é feita a validação do posicionamento do elemento, conforme os critérios já explicados

Se for verdadeiro, temos o elemento dentro da tela e é retornado positivo

Caso não, um retorno de false é o que receberemos

Note que é preciso invocar a função com o elemento selecionado como parâmetro

E também você deve adaptar ao seu evento, para satisfazer a regra de negócios da sua aplicação

Conclusão

Neste artigo você aprendeu a verificar se elemento está visível ao scrollar com JavaScript puro

Basicamente criamos uma validação das posições do elemento

Que caso se encaixem na tela, teremos um retorno de true

Caso não, o retorno da função é false

Confira nossos cursos gratuitos no Youtube, com vídeos todos os dias!

Se inscreva e ative o sininho para receber as notificações e aprender mais ainda sobre desenvolvimento web!

Veja também nosso catálogo de cursos na Udemy, todos com exercícios e projetos práticos, nas mais diversas tecnologias

O link acima contém um cupom de desconto para os cursos!
Subscribe
Notify of
guest

0 Comentários
Inline Feedbacks
View all comments