// Created on savesnippets.com ยท https://savesnippets.com/BIiRAscECdWUnR // Scroll-reveal animation function revealOnScroll(selector, visibleClass = 'visible') { const observer = new IntersectionObserver( (entries) => entries.forEach((e) => { if (e.isIntersecting) { e.target.classList.add(visibleClass); observer.unobserve(e.target); } }), { threshold: 0.15 } ); document.querySelectorAll(selector).forEach((el) => observer.observe(el)); } // Lazy-load images function lazyLoadImages(selector = 'img[data-src]') { const observer = new IntersectionObserver((entries) => { entries.forEach((e) => { if (e.isIntersecting) { e.target.src = e.target.dataset.src; observer.unobserve(e.target); } }); }); document.querySelectorAll(selector).forEach((img) => observer.observe(img)); } // Usage revealOnScroll('.fade-in'); lazyLoadImages();