UNPKG

lazysizes

Version:

High performance (jankfree) lazy loader for images (including responsive images), iframes and scripts (widgets).

3 lines (2 loc) 1.19 kB
/*! lazysizes - v5.3.2 */ !function(e,t){var n=function(){t(e.lazySizes),e.removeEventListener("lazyunveilread",n,!0)};t=t.bind(null,e,e.document),"object"==typeof module&&module.exports?t(require("lazysizes")):"function"==typeof define&&define.amd?define(["lazysizes"],t):e.lazySizes?n():e.addEventListener("lazyunveilread",n,!0)}(window,function(e,i,a){"use strict";var s,o,t=i.createElement("img"),n="sizes"in t&&"srcset"in t,c=/\s+\d+h/g,r=(s=/\s+(\d+)(w|h)\s+(\d+)(w|h)/,o=Array.prototype.forEach,function(){function n(e){var t,n,r=e.getAttribute(lazySizesConfig.srcsetAttr);r&&(n=r.match(s))&&((t="w"==n[2]?n[1]/n[3]:n[3]/n[1])&&e.setAttribute("data-aspectratio",t),e.setAttribute(lazySizesConfig.srcsetAttr,r.replace(c,"")))}function e(e){var t;e.detail.instance==a&&((t=e.target.parentNode)&&"PICTURE"==t.nodeName&&o.call(t.getElementsByTagName("source"),n),n(e.target))}function t(){r.currentSrc&&i.removeEventListener("lazybeforeunveil",e)}var r=i.createElement("img");i.addEventListener("lazybeforeunveil",e),r.onload=t,r.onerror=t,r.srcset="data:,a 1w 1h",r.complete&&t()});!a.hasHDescriptorFix&&e.HTMLPictureElement&&n&&i.msElementsFromPoint&&(a.hasHDescriptorFix=!0,r())});