summaryrefslogtreecommitdiff
path: root/html/content/js/Images/lazyload.js
diff options
context:
space:
mode:
Diffstat (limited to 'html/content/js/Images/lazyload.js')
-rw-r--r--html/content/js/Images/lazyload.js61
1 files changed, 0 insertions, 61 deletions
diff --git a/html/content/js/Images/lazyload.js b/html/content/js/Images/lazyload.js
deleted file mode 100644
index 4f954af..0000000
--- a/html/content/js/Images/lazyload.js
+++ /dev/null
@@ -1,61 +0,0 @@
-$$plugins.define('lazyload', function (element, options) {
- const plugin = this;
- plugin.logger.debug("lazy loading");
- const mutationObserver =
- new MutationObserver(function (mutations) {
- mutations.forEach(function (mutation, index) {
- if (mutation.type === 'childList') {
- mutation.addedNodes.forEach(update);
- }
- });
- }),
- observer =
- new IntersectionObserver(function (entries, self) {
- entries.forEach(function (entry) {
- if (entry.isIntersecting) {
- load(entry.target);
- self.unobserve(entry.target);
- }
- });
- }, options || {
- rootMargin: '0px 0px 1250px 0px',
- threshold: 0
- }),
- elms = element.querySelectorAll('.lazy');
- elms.forEach(elm => observer.observe(elm));
- mutationObserver.observe(element, { childList: true, subtree: true });
-
- function update(element) {
- if (!(element instanceof (HTMLElement))) {
- return;
- }
- const container = element || document;
- if (!container.querySelectorAll) {
- return;
- }
- const elms = container.querySelectorAll('.lazy');
- Array.prototype.forEach.call(elms, (elm) => !elm.getAttribute('data-loaded') && observer.observe(elm));
- }
-
- function load(elm) {
- let i = 0, source, attr, picture = elm.parentElement, sources = picture.querySelectorAll('.lazysrcset');
- if (sources.length) {
- for (; i < sources.length; i++) {
- source = sources[i];
- attr = source.getAttribute('data-srcset');
- if (attr) {
- source.srcset = source.getAttribute('data-srcset');
- }
- }
- }
-
- if (!elm.getAttribute('data-loaded') && elm.getAttribute('data-src')) {
- elm.src = elm.getAttribute('data-src');
- elm.setAttribute('data-loaded', true);
- }
- }
-
- return {
- update: update
- };
-}); \ No newline at end of file