document.addEventListener("DOMContentLoaded", function() { // Vérifier si l'API Intersection Observer est disponible if ('IntersectionObserver' in window) { let lazyImages = document.querySelectorAll('img[data-src]'); let observer = new IntersectionObserver((entries, observer) => { entries.forEach(entry => { if (entry.isIntersecting) { let img = entry.target; img.src = img.getAttribute('data-src'); img.removeAttribute('data-src'); observer.unobserve(img); } }); }, { root: null, rootMargin: '0px', threshold: 0.1 // Charger l'image quand 10% est visible }); lazyImages.forEach(img => { observer.observe(img); }); } else { // Fallback si l'Intersection Observer n'est pas supporté function lazyLoadFallback() { document.querySelectorAll('img[data-src]').forEach(function(img) { if (img.getBoundingClientRect().top < window.innerHeight) { img.src = img.getAttribute('data-src'); img.removeAttribute('data-src'); } }); } window.addEventListener('scroll', lazyLoadFallback); window.addEventListener('resize', lazyLoadFallback); lazyLoadFallback(); } });