@wezom/zz-load
Version:
Lazy loader based on IntersectionObserver API
49 lines (48 loc) • 1.14 kB
JavaScript
;
var __importDefault =
(this && this.__importDefault) ||
function (mod) {
return mod && mod.__esModule ? mod : { default: mod };
};
Object.defineProperty(exports, '__esModule', { value: true });
const attrs_1 = __importDefault(require('../config/attrs'));
function default_1(
element,
resource,
{ setSourcesOnlyOnLoad },
loadActions,
errorActions
) {
const srcset = element.getAttribute(attrs_1.default.sourceSrcSet);
if (setSourcesOnlyOnLoad) {
const img = document.createElement('img');
img.addEventListener('error', (event) => errorActions(event, resource));
img.addEventListener('load', (event) => {
if (srcset) {
element.srcset = srcset;
}
element.src = resource;
loadActions(event, resource);
});
if (srcset) {
img.srcset = srcset;
}
img.src = resource;
} else {
element.addEventListener('error', (event) => errorActions(event, resource));
element.addEventListener(
'load',
(event) => {
loadActions(event, resource);
},
{
once: true
}
);
if (srcset) {
element.srcset = srcset;
}
element.src = resource;
}
}
exports.default = default_1;