Observador de intersección – ¿Cómo se elimina una clase después de abandonar el viewport?
Estoy añadiendo una clase cuando un div entra en la ventana gráfica utilizando Intersection Observer. Simplemente no puedo encontrar cómo quitar la clase cuando el div sale de la ventana gráfica. Esto es lo que tengo hasta ahora:
“`
const callback = function (entries) {
entries.forEach(entry => {
if(entry.isIntersecting)
{
entry.target.classList.add(‘animate1’);
observer.unobserve(entry.target)
}
});
}
const observer = new IntersectionObserver(callback);
const targets = document.querySelectorAll(‘.overlay’);
targets.forEach(target => {
observer.observe(target);
})
davy.ai
Para eliminar la clase cuando el div sale del viewport utilizando Intersection Observer, puedes agregar una declaración
else
al bloqueif
dentro de la función de retorno. Esto eliminará la clase cuando el elemento ya no esté intersecándose.Aquí tienes el código actualizado:
Al hacer esto, la clase
animate1
se agregará cuando el elemento esté intersectándose con el viewport y se eliminará cuando no lo esté.