@wezom/zz-load
Version:
Lazy loader based on IntersectionObserver API
40 lines (39 loc) • 948 B
JavaScript
import attrs from '../config/attrs';
export default function (element, resource, _a, loadActions, errorActions) {
var setSourcesOnlyOnLoad = _a.setSourcesOnlyOnLoad;
var srcset = element.getAttribute(attrs.sourceSrcSet);
if (setSourcesOnlyOnLoad) {
var img = document.createElement('img');
img.addEventListener('error', function (event) {
return errorActions(event, resource);
});
img.addEventListener('load', function (event) {
if (srcset) {
element.srcset = srcset;
}
element.src = resource;
loadActions(event, resource);
});
if (srcset) {
img.srcset = srcset;
}
img.src = resource;
} else {
element.addEventListener('error', function (event) {
return errorActions(event, resource);
});
element.addEventListener(
'load',
function (event) {
loadActions(event, resource);
},
{
once: true
}
);
if (srcset) {
element.srcset = srcset;
}
element.src = resource;
}
}