From 2ca1d2c2e76bbd29e89a0aebb83997e73e1f4ffa Mon Sep 17 00:00:00 2001 From: Kirik Date: Tue, 24 Mar 2026 00:59:33 +0100 Subject: [PATCH] Add gallery-lazy.js for background image lazy loading Co-Authored-By: Claude Sonnet 4.6 --- static/js/gallery-lazy.js | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 static/js/gallery-lazy.js diff --git a/static/js/gallery-lazy.js b/static/js/gallery-lazy.js new file mode 100644 index 0000000..3b84931 --- /dev/null +++ b/static/js/gallery-lazy.js @@ -0,0 +1,26 @@ +// Ленивая загрузка фоновых изображений галереи через Intersection Observer +(function () { + if (!('IntersectionObserver' in window)) { + // Fallback для старых браузеров — грузим сразу + document.querySelectorAll('.img[data-bg]').forEach(function (el) { + el.style.backgroundImage = el.getAttribute('data-bg'); + }); + return; + } + + var observer = new IntersectionObserver(function (entries) { + entries.forEach(function (entry) { + if (entry.isIntersecting) { + var el = entry.target; + el.style.backgroundImage = el.getAttribute('data-bg'); + observer.unobserve(el); + } + }); + }, { + rootMargin: '200px 0px' // начинаем грузить за 200px до появления + }); + + document.querySelectorAll('.img[data-bg]').forEach(function (el) { + observer.observe(el); + }); +})();