El problema con este paralaje es que se ejecuta en todas las secciones de la página de la clase .parallaxBg al mismo tiempo. Por lo tanto, me gustaría usar Intersection Observer para ejecutar el paralaje solo cuando la sección ingresa a la ventana gráfica.
// Parallax ------------------------------------------------------------------------- window.addEventListener("scroll", function parallaxFunction() { let bg = document.querySelectorAll(".parallaxBg"); let distance = window.pageYOffset; bg.forEach(parallaxBg => { parallaxBg.style.top = distance * -0.2 + "px"; }) }); // Intersection observer -------------------------------------------------------------- const bgImages = document.querySelectorAll('.parallaxBg'); observer = new IntersectionObserver((entries) => { entries.forEach(entry => { console.log(entries); if (entry.intersectionRatio > 0) { entry.target.parallaxFunction; } else { entry.target.parallaxFunction; } }); }); bgImages.forEach(image => { observer.observe(image); });