ArticleTemplates/assets/js/bootstraps/gallery.js (31 lines of code) (raw):

import { getAndroidVersion } from 'modules/util'; function init() { lazyLoadImages(); } function lazyLoadImages() { if (parseInt(getAndroidVersion()) === 5) { let i; const images = document.querySelectorAll('.touch-gallery__images__image'); for (i = 0; i < images.length; i++) { images[i].style.backgroundImage = "url(" + images[i].dataset.src + ")"; } return; } const options = { rootMargin: '2000px', threshold: 0.01 }; const handleIntersection = (entries) => { entries.forEach(({intersectionRatio, target}) => { if (intersectionRatio > 0) { target.style.backgroundImage = `url(${target.dataset.src})`; } }) } const observer = new IntersectionObserver(handleIntersection, options); const images = document.querySelectorAll('.touch-gallery__images__image'); images.forEach(img => { observer.observe(img); }); } export { init };