23 lines
760 B
JavaScript
23 lines
760 B
JavaScript
document.addEventListener("DOMContentLoaded", function () {
|
|
const elements = [].slice.call(document.querySelectorAll("[data-style]"));
|
|
if ("IntersectionObserver" in window && elements.length) {
|
|
let lazyObserver = new IntersectionObserver(function (entries, _) {
|
|
entries.forEach(function (entry) {
|
|
if (entry.isIntersecting) {
|
|
let lazyElement = entry.target;
|
|
lazyElement.style.cssText = lazyElement.dataset.style;
|
|
lazyObserver.unobserve(lazyElement);
|
|
}
|
|
});
|
|
});
|
|
|
|
elements.forEach(function (element) {
|
|
lazyObserver.observe(element);
|
|
});
|
|
} else if (elements.length) {
|
|
elements.forEach(function (element) {
|
|
element.style.cssText = element.dataset.style;
|
|
});
|
|
}
|
|
});
|