UNPKG

@wezom/zz-load

Version:

Lazy loader based on IntersectionObserver API

43 lines (42 loc) 1.24 kB
// import attrs from '../config/attrs'; import generateSources from '../utils/generate-sources'; export default function (picture, img, resource, _a, loadActions, errorActions) { var setSourcesOnlyOnLoad = _a.setSourcesOnlyOnLoad; var sources = generateSources(picture); if (setSourcesOnlyOnLoad) { var _picture_1 = document.createElement('picture'); var _img = document.createElement('img'); _img.addEventListener('error', function (event) { return errorActions(event, resource); }); _img.addEventListener('load', function (event) { sources.forEach(function (source) { picture.appendChild(source); }); picture.appendChild(img); img.src = resource; loadActions(event, resource); }); sources.forEach(function (source) { _picture_1.appendChild(source.cloneNode()); }); _picture_1.appendChild(_img); _img.src = resource; } else { img.addEventListener('error', function (event) { return errorActions(event, resource); }); img.addEventListener( 'load', function (event) { loadActions(event, resource); }, { once: true } ); sources.forEach(function (source) { picture.appendChild(source.cloneNode()); }); picture.appendChild(img); img.src = resource; } }