diff options
Diffstat (limited to 'static/lazy-loading.js')
-rw-r--r-- | static/lazy-loading.js | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/static/lazy-loading.js b/static/lazy-loading.js new file mode 100644 index 00000000..22f95eb0 --- /dev/null +++ b/static/lazy-loading.js @@ -0,0 +1,25 @@ +// Lazy loading! Roll your own. Woot. + +function loadImage(image) { + image.src = image.dataset.original; +} + +function lazyLoad(elements) { + for (const item of elements) { + if (item.intersectionRatio > 0) { + observer.unobserve(item.target); + loadImage(item.target); + } + } +} + +const observer = new IntersectionObserver(lazyLoad, { + rootMargin: '200px', + threshold: 1.0 +}); + +for (const image of document.querySelectorAll('img.lazy')) { + observer.observe(image); +} + +window.lazyLoadingExecuted = true; |