/** * FF's first picture implementation is static and does not react to viewport changes, this tiny script fixes this. */ (function(window, factory) { var globalInstall = function(){ factory(window.lazySizes); window.removeEventListener('lazyunveilread', globalInstall, true); }; factory = factory.bind(null, window, window.document); if(typeof module == 'object' && module.exports){ factory(require('lazysizes')); } else if(window.lazySizes) { globalInstall(); } else { window.addEventListener('lazyunveilread', globalInstall, true); } }(window, function(window, document, lazySizes) { /*jshint eqnull:true */ var match; var ua = navigator.userAgent; if ( window.HTMLPictureElement && ((/ecko/).test(ua) && (match = ua.match(/rv\:(\d+)/)) && match[1] < 41) ) { addEventListener("resize", (function() { var timer; var dummySrc = document.createElement("source"); var fixRespimg = function(img) { var source, sizes; var picture = img.parentNode; if (picture.nodeName.toUpperCase() === "PICTURE") { source = dummySrc.cloneNode(); picture.insertBefore(source, picture.firstElementChild); setTimeout(function() { picture.removeChild(source); }); } else if (!img._pfLastSize || img.offsetWidth > img._pfLastSize) { img._pfLastSize = img.offsetWidth; sizes = img.sizes; img.sizes += ",100vw"; setTimeout(function() { img.sizes = sizes; }); } }; var findPictureImgs = function() { var i; var imgs = document.querySelectorAll("picture > img, img[srcset][sizes]"); for (i = 0; i < imgs.length; i++) { fixRespimg(imgs[i]); } }; var onResize = function() { clearTimeout(timer); timer = setTimeout(findPictureImgs, 99); }; var mq = window.matchMedia && matchMedia("(orientation: landscape)"); var init = function() { onResize(); if (mq && mq.addListener) { mq.addListener(onResize); } }; dummySrc.srcset = "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="; if (/^[c|i]|d$/.test(document.readyState || "")) { init(); } else { document.addEventListener("DOMContentLoaded", init); } return onResize; })()); } }));