lazysizes
Version:
High performance (jankfree) lazy loader for images (including responsive images), iframes and scripts (widgets).
3 lines (2 loc) • 2.15 kB
JavaScript
/*! lazysizes - v5.3.2 */
!function(e,t){var a;e&&(a=function(){t(e.lazySizes),e.removeEventListener("lazyunveilread",a,!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?a():e.addEventListener("lazyunveilread",a,!0))}("undefined"!=typeof window?window:0,function(l,o,u){"use strict";var e,d,c,s,r,n,m,f,v,p;function b(e,t){var a,i,r,n;a=v.replace(c,e),i=function(e){e&&e.thumbnail_url&&(t.style.backgroundImage="url("+e.thumbnail_url+")")},r="vimeoCallback"+d,n=o.createElement("script"),a+="&callback="+r,d++,l[r]=function(e){n.parentNode.removeChild(n),delete l[r],i(e)},n.src=a,o.head.appendChild(n),t.addEventListener("click",y)}function y(e){var t=e.currentTarget,a=t.getAttribute("data-vimeo"),i=t.getAttribute("data-vimeoparams")||"";t.removeEventListener("click",y),a&&n.test(a)&&(!i||n.test(i))&&(i&&!r.test(i)&&(i="&"+i),e.preventDefault(),t.innerHTML='<iframe src="'+p.replace(c,a)+i+'" frameborder="0" allowfullscreen="" width="640" height="390"></iframe>')}function g(e){var t=e.currentTarget,a=t.getAttribute("data-youtube"),i=t.getAttribute("data-ytparams")||"";t.removeEventListener("click",g),a&&n.test(a)&&(!i||n.test(i))&&(i&&!r.test(i)&&(i="&"+i),e.preventDefault(),t.innerHTML='<iframe src="'+f.replace(c,a)+i+'" frameborder="0" allowfullscreen="" width="640" height="390"></iframe>')}o.getElementsByClassName&&(e="https:"==location.protocol?"https:":"http:",d=Date.now(),c=/\{\{id}}/,s=/\{\{hqdefault}}/,r=/^&/,n=/^[a-z0-9-_&=]+$/i,m=e+"//img.youtube.com/vi/{{id}}/{{hqdefault}}.jpg",f=e+"//www.youtube.com/embed/{{id}}?autoplay=1",v=e+"//vimeo.com/api/oembed.json?url=https%3A//vimeo.com/{{id}}",p=e+"//player.vimeo.com/video/{{id}}?autoplay=1",o.addEventListener("lazybeforeunveil",function(e){var t,a,i,r,n,l;e.detail.instance==u&&(a=(t=e.target).getAttribute("data-youtube"),i=t.getAttribute("data-vimeo"),a&&t&&(r=a,l=(n=t).getAttribute("data-thumb-size")||u.cfg.ytThumb||"hqdefault",n.style.backgroundImage="url("+m.replace(c,r).replace(s,l)+")",n.addEventListener("click",g)),i&&t&&b(i,t))}))});