|
@@ -26,6 +26,7 @@ this.lazyLoader = this.lazyLoader || (() => {
|
|
|
return {
|
|
return {
|
|
|
process(doc) {
|
|
process(doc) {
|
|
|
replaceSrc(doc.querySelectorAll("img[data-src]"), "src");
|
|
replaceSrc(doc.querySelectorAll("img[data-src]"), "src");
|
|
|
|
|
+ replaceSrc(doc.querySelectorAll("img[data-lazy-src]"), "lazy-src", "lazySrc");
|
|
|
replaceSrc(doc.querySelectorAll("img[data-original]"), "original");
|
|
replaceSrc(doc.querySelectorAll("img[data-original]"), "original");
|
|
|
doc.querySelectorAll("[data-bg]").forEach(element => {
|
|
doc.querySelectorAll("[data-bg]").forEach(element => {
|
|
|
const dataBg = element.dataset.bg;
|
|
const dataBg = element.dataset.bg;
|
|
@@ -43,6 +44,14 @@ this.lazyLoader = this.lazyLoader || (() => {
|
|
|
processElement(imgElement);
|
|
processElement(imgElement);
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
|
|
+ doc.querySelectorAll("[data-lazy-srcset]").forEach(imgElement => {
|
|
|
|
|
+ const srcset = imgElement.dataset.lazySrcset;
|
|
|
|
|
+ if (srcset && imgElement.srcset != srcset) {
|
|
|
|
|
+ imgElement.srcset = srcset;
|
|
|
|
|
+ imgElement.removeAttribute("data-lazy-srcset");
|
|
|
|
|
+ processElement(imgElement);
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
doc.querySelectorAll(".lazyload").forEach(element => {
|
|
doc.querySelectorAll(".lazyload").forEach(element => {
|
|
|
element.classList.add("lazypreload");
|
|
element.classList.add("lazypreload");
|
|
|
element.classList.remove("lazyload");
|
|
element.classList.remove("lazyload");
|
|
@@ -52,19 +61,21 @@ this.lazyLoader = this.lazyLoader || (() => {
|
|
|
src: {
|
|
src: {
|
|
|
"img[data-src]": "data-src",
|
|
"img[data-src]": "data-src",
|
|
|
"img[data-original]": "data-original",
|
|
"img[data-original]": "data-original",
|
|
|
- "img[data-bg]": "data-bg"
|
|
|
|
|
|
|
+ "img[data-bg]": "data-bg",
|
|
|
|
|
+ "img[data-lazy-src]": "data-lazy-src"
|
|
|
},
|
|
},
|
|
|
srcset: {
|
|
srcset: {
|
|
|
- "[data-srcset]": "data-srcset"
|
|
|
|
|
|
|
+ "[data-srcset]": "data-srcset",
|
|
|
|
|
+ "[data-lazy-srcset]": "data-lazy-srcset"
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
- function replaceSrc(elements, attributeName) {
|
|
|
|
|
|
|
+ function replaceSrc(elements, attributeName, propertyName) {
|
|
|
elements.forEach(element => {
|
|
elements.forEach(element => {
|
|
|
- const dataSrc = element.dataset[attributeName];
|
|
|
|
|
|
|
+ const dataSrc = element.dataset[propertyName || attributeName];
|
|
|
if (dataSrc && dataSrc.startsWith(DATA_URI_PREFIX) && dataSrc != EMPTY_DATA_URI && element.src != dataSrc) {
|
|
if (dataSrc && dataSrc.startsWith(DATA_URI_PREFIX) && dataSrc != EMPTY_DATA_URI && element.src != dataSrc) {
|
|
|
- element.src = element.dataset[attributeName];
|
|
|
|
|
|
|
+ element.src = element.dataset[propertyName || attributeName];
|
|
|
element.removeAttribute("data-" + attributeName);
|
|
element.removeAttribute("data-" + attributeName);
|
|
|
processElement(element);
|
|
processElement(element);
|
|
|
}
|
|
}
|