Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

200
Vistas
Compruebe si el elemento está en la ventana gráfica Vanilla JS

Quiero que mi elemento aparezca a través de la animación de fotogramas clave si están visibles en la ventana gráfica actual.

Funciona a medias, pero mi classList.remove('current') anula mi classList.add('current') por lo que el comportamiento durante el desplazamiento no es tan fluido.

Mi código

CSS

 section.section{ &.current{ animation:expand 1s ease-in-out; } } @keyframes expand { from { transform: scale(0); display: block; } }

JS

 const elements = document.querySelectorAll('section.section'); window.addEventListener('scroll', function (e) { elements.forEach(el => { let elTopPos = el.getBoundingClientRect().top + window.scrollY; let elBottomPos = el.getBoundingClientRect().bottom + window.scrollY; let windowBottomPos = window.innerHeight + window.pageYOffset; let windowTopPos = window.scrollY; if (el.classList.contains('current') === false) { if ((windowBottomPos > elTopPos && windowBottomPos < elBottomPos) || (windowTopPos < elBottomPos && windowTopPos > elTopPos)) { el.classList.add('current'); } } else{ if ((windowTopPos > elBottomPos && windowBottomPos > elBottomPos) || (windowBottomPos < elTopPos && windowTopPos < elTopPos)) { el.classList.remove('current'); } } }) },{ passive: true })
about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda