lazysizes
Version:
High performance (jankfree) lazy loader for images (including responsive images), iframes and scripts (widgets).
2 lines • 1.1 kB
JavaScript
/*! lazysizes - v4.0.0 */
!function(a,b){var c=function(){b(a.lazySizes),a.removeEventListener("lazyunveilread",c,!0)};b=b.bind(null,a,a.document),"object"==typeof module&&module.exports?b(require("lazysizes")):a.lazySizes?c():a.addEventListener("lazyunveilread",c,!0)}(window,function(a,b,c){"use strict";var d,e=b.createElement("img");!("srcset"in e)||"sizes"in e||a.HTMLPictureElement||(d=/^picture$/i,b.addEventListener("lazybeforeunveil",function(a){if(a.detail.instance==c){var e,f,g,h,i,j,k;!a.defaultPrevented&&!lazySizesConfig.noIOSFix&&(e=a.target)&&(g=e.getAttribute(lazySizesConfig.srcsetAttr))&&(f=e.parentNode)&&((i=d.test(f.nodeName||""))||(h=e.getAttribute("sizes")||e.getAttribute(lazySizesConfig.sizesAttr)))&&(j=i?f:b.createElement("picture"),e._lazyImgSrc||Object.defineProperty(e,"_lazyImgSrc",{value:b.createElement("source"),writable:!0}),k=e._lazyImgSrc,h&&k.setAttribute("sizes",h),k.setAttribute(lazySizesConfig.srcsetAttr,g),e.setAttribute("data-pfsrcset",g),e.removeAttribute(lazySizesConfig.srcsetAttr),i||(f.insertBefore(j,e),j.appendChild(e)),j.insertBefore(k,e))}}))});