Skip to content

Instantly share code, notes, and snippets.

@Alfrex92
Last active November 30, 2018 11:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Alfrex92/06800bfb00c4a7c9ab6e785b7bf839ef to your computer and use it in GitHub Desktop.
Save Alfrex92/06800bfb00c4a7c9ab6e785b7bf839ef to your computer and use it in GitHub Desktop.
Lazy loading Intersection Observer with Vanilla JS
document.addEventListener("DOMContentLoaded", () => {
const lazyImages = [...qall(".lazy-load")]
if (!lazyImages) return;
if ("IntersectionObserver" in window) {
let lazyImageObserver =
new IntersectionObserver((entries, observer) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
let lazyImage = entry.target;
lazyImage.src = lazyImage.dataset.src;
lazyImage.srcset = lazyImage.dataset.srcset;
lazyImage.classList.remove("lazy-load");
lazyImageObserver.unobserve(lazyImage);
}
});
});
lazyImages.forEach(lazyImage => {
lazyImageObserver.observe(lazyImage);
});
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment