diff --git a/Imager.js b/Imager.js index d6f6383..b5ae59d 100644 --- a/Imager.js +++ b/Imager.js @@ -120,6 +120,9 @@ this.widthsMap = {}; this.refreshPixelRatio(); this.widthInterpolator = opts.widthInterpolator || returnDirectValue; + this.widthGetter = opts.widthGetter || function (img) { + return img.clientWidth; + }; if (typeof this.availableWidths !== 'function'){ if (typeof this.availableWidths.length === 'number') { @@ -259,7 +262,7 @@ }; Imager.prototype.determineAppropriateResolution = function (image) { - return Imager.getClosestValue(image.clientWidth, this.availableWidths); + return Imager.getClosestValue(this.widthGetter(image), this.availableWidths); }; /** diff --git a/dist/Imager.map.js b/dist/Imager.map.js index 5c4e23c..40c9ddf 100644 --- a/dist/Imager.map.js +++ b/dist/Imager.map.js @@ -1 +1 @@ -{"version":3,"file":"./Imager.min.js","sources":["./Imager.js"],"names":["window","document","applyEach","collection","callbackEach","i","length","new_collection","returnDirectValue","value","Imager","elements","opts","self","this","doc","undefined","selector","imagesOffScreen","viewportHeight","documentElement","clientHeight","className","gif","createElement","src","alt","scrollDelay","onResize","hasOwnProperty","lazyload","scrolled","availablePixelRatios","availableWidths","defaultWidths","onImagesReplaced","widthsMap","refreshPixelRatio","widthInterpolator","createWidthsMap","getKeys","sort","a","b","divs","querySelectorAll","changeDivsToEmptyImages","nextTick","init","addEvent","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","callback","setTimeout","addEventListener","el","eventName","fn","attachEvent","Object","keys","object","key","push","prototype","scrollCheck","clearInterval","interval","slice","initialized","checkImagesNeedReplacing","registerResizeEvent","registerScrollEvent","createGif","element","match","RegExp","cloneNode","width","getAttribute","setAttribute","parentNode","replaceChild","isThisElementOnScreen","offset","getPageOffset","elementOffsetTop","offsetParent","offsetTop","images","isResizing","image","replaceImagesBasedOnScreenDimensions","computedWidth","determineAppropriateResolution","changeImageSrcToUseNewImageDimensions","getClosestValue","clientWidth","devicePixelRatio","getPixelRatio","selectedWidth","replace","transforms","pixelRatio","context","widths","interpolator","map","baseValue","candidates","setInterval","getPageOffsetGenerator","testCase","pageYOffset","scrollTop","call","module","exports","define","amd"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"./Imager.min.js","sources":["./Imager.js"],"names":["window","document","applyEach","collection","callbackEach","i","length","new_collection","returnDirectValue","value","Imager","elements","opts","self","this","doc","undefined","selector","imagesOffScreen","viewportHeight","documentElement","clientHeight","className","gif","createElement","src","alt","scrollDelay","onResize","hasOwnProperty","lazyload","scrolled","availablePixelRatios","availableWidths","defaultWidths","onImagesReplaced","widthsMap","refreshPixelRatio","widthInterpolator","widthGetter","img","clientWidth","createWidthsMap","getKeys","sort","a","b","divs","querySelectorAll","changeDivsToEmptyImages","nextTick","init","addEvent","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","callback","setTimeout","addEventListener","el","eventName","fn","attachEvent","Object","keys","object","key","push","prototype","scrollCheck","clearInterval","interval","slice","initialized","checkImagesNeedReplacing","registerResizeEvent","registerScrollEvent","createGif","element","match","RegExp","cloneNode","width","getAttribute","setAttribute","parentNode","replaceChild","isThisElementOnScreen","offset","getPageOffset","elementOffsetTop","offsetParent","offsetTop","images","isResizing","image","replaceImagesBasedOnScreenDimensions","computedWidth","determineAppropriateResolution","changeImageSrcToUseNewImageDimensions","getClosestValue","devicePixelRatio","getPixelRatio","selectedWidth","replace","transforms","pixelRatio","context","widths","interpolator","map","baseValue","candidates","setInterval","getPageOffsetGenerator","testCase","pageYOffset","scrollTop","call","module","exports","define","amd"],"mappings":"CAAE,SAAUA,EAAQC,GAEhB,YAWA,SAASC,GAAWC,EAAYC,GAK5B,IAJA,GAAIC,GAAI,EACJC,EAASH,EAAWG,OACpBC,KAEOD,EAAJD,EAAYA,IACfE,EAAeF,GAAKD,EAAaD,EAAWE,GAAIA,EAGpD,OAAOE,GAGX,QAASC,GAAmBC,GAC1B,MAAOA,GA0DT,QAASC,GAAQC,EAAUC,GACvB,GAAIC,GAAOC,KACPC,EAAOd,CAEXW,GAAOA,MAEUI,SAAbL,IAEwB,gBAAbA,IACPC,EAAKK,SAAWN,EAChBA,EAAWK,QAIqB,mBAApBL,GAASL,SACrBM,EAAOD,EACPA,EAAWK,SAInBF,KAAKI,mBACLJ,KAAKK,eAAmBJ,EAAIK,gBAAgBC,aAC5CP,KAAKG,SAAmBL,EAAKK,UAAY,sBACzCH,KAAKQ,UAAmBV,EAAKU,WAAa,gBAC1CR,KAAKS,IAAmBR,EAAIS,cAAc,OAC1CV,KAAKS,IAAIE,IAAe,6FACxBX,KAAKS,IAAID,UAAeR,KAAKQ,UAC7BR,KAAKS,IAAIG,IAAe,GACxBZ,KAAKa,YAAmBf,EAAKe,aAAe,IAC5Cb,KAAKc,SAAmBhB,EAAKiB,eAAe,YAAcjB,EAAKgB,UAAW,EAC1Ed,KAAKgB,SAAmBlB,EAAKiB,eAAe,YAAcjB,EAAKkB,UAAW,EAC1EhB,KAAKiB,UAAmB,EACxBjB,KAAKkB,qBAAuBpB,EAAKoB,uBAAyB,EAAG,GAC7DlB,KAAKmB,gBAAmBrB,EAAKqB,iBAAmBC,EAChDpB,KAAKqB,iBAAmBvB,EAAKuB,kBAAoB,aACjDrB,KAAKsB,aACLtB,KAAKuB,oBACLvB,KAAKwB,kBAAoB1B,EAAK0B,mBAAqB9B,EACnDM,KAAKyB,YAAmB3B,EAAK2B,aAAe,SAAUC,GACR,MAAOA,GAAIC,aAGrB,kBAAzB3B,MAAKmB,kBAC6B,gBAAhCnB,MAAKmB,gBAAgB3B,OAC9BQ,KAAKsB,UAAY1B,EAAOgC,gBAAgB5B,KAAKmB,gBAAiBnB,KAAKwB,oBAGnExB,KAAKsB,UAAYtB,KAAKmB,gBACtBnB,KAAKmB,gBAAkBU,EAAQ7B,KAAKmB,kBAGtCnB,KAAKmB,gBAAkBnB,KAAKmB,gBAAgBW,KAAK,SAAUC,EAAGC,GAC5D,MAAOD,GAAIC,KAMXnC,GACAG,KAAKiC,KAAO7C,EAAUS,EAAUH,GAChCM,KAAKG,SAAW,MAGhBH,KAAKiC,KAAO7C,EAAUa,EAAIiC,iBAAiBlC,KAAKG,UAAWT,GAG/DM,KAAKmC,0BAELC,EAAS,WACLrC,EAAKsC,SArJb,GAAIjB,GAAeS,EAASO,EAAUE,CAEtCF,GAAWlD,EAAOqD,uBACPrD,EAAOsD,0BACPtD,EAAOuD,6BACP,SAAUC,GACNxD,EAAOyD,WAAWD,EAAU,IAAO,KAmBlDJ,EAAW,WACP,MAAInD,GAASyD,iBACF,SAAkCC,EAAIC,EAAWC,GACpD,MAAOF,GAAGD,iBAAiBE,EAAWC,GAAI,IAIvC,SAA4BF,EAAIC,EAAWC,GAC9C,MAAOF,GAAGG,YAAY,KAAKF,EAAWC,OAKlD3B,GAAiB,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAE1GS,EAAiC,kBAAhBoB,QAAOC,KAAsBD,OAAOC,KAAO,SAAUC,GAClE,GACIC,GADAF,IAGJ,KAAKE,IAAOD,GACRD,EAAKG,KAAKD,EAGd,OAAOF,IAyGXtD,EAAO0D,UAAUC,YAAc,WACvBvD,KAAKiB,WACAjB,KAAKI,gBAAgBZ,QACtBN,EAAOsE,cAAcxD,KAAKyD,UAG9BzD,KAAKiC,KAAOjC,KAAKI,gBAAgBsD,MAAM,GACvC1D,KAAKI,gBAAgBZ,OAAS,EAC9BQ,KAAKmC,0BACLnC,KAAKiB,UAAW,IAIxBrB,EAAO0D,UAAUjB,KAAO,WACpBrC,KAAK2D,aAAc,EACnB3D,KAAK4D,yBAAyB5D,KAAKiC,MAE/BjC,KAAKc,UACLd,KAAK6D,sBAGL7D,KAAKgB,UACLhB,KAAK8D,uBAIblE,EAAO0D,UAAUS,UAAY,SAAUC,GAEnC,GAAIA,EAAQxD,UAAUyD,MAAM,GAAIC,QAAO,QAAUlE,KAAKQ,UAAY,UAC9D,MAAOwD,EAGX,IAAIvD,GAAMT,KAAKS,IAAI0D,WAAU,EAQ7B,OANA1D,GAAI2D,MAAQJ,EAAQK,aAAa,cACjC5D,EAAI6D,aAAa,WAAYN,EAAQK,aAAa,aAClD5D,EAAI6D,aAAa,MAAON,EAAQK,aAAa,aAAerE,KAAKS,IAAIG,KAErEoD,EAAQO,WAAWC,aAAa/D,EAAKuD,GAE9BvD,GAGXb,EAAO0D,UAAUnB,wBAA0B,WACvC,GAAIpC,GAAOC,IAEXZ,GAAUY,KAAKiC,KAAM,SAAS+B,EAASzE,GAC/BQ,EAAKiB,SACDjB,EAAK0E,sBAAsBT,GAC3BjE,EAAKkC,KAAK1C,GAAKQ,EAAKgE,UAAUC,GAE9BjE,EAAKK,gBAAgBiD,KAAKW,GAG9BjE,EAAKkC,KAAK1C,GAAKQ,EAAKgE,UAAUC,KAIlChE,KAAK2D,aACL3D,KAAK4D,yBAAyB5D,KAAKiC,OAI3CrC,EAAO0D,UAAUmB,sBAAwB,SAAUT,GAG/C,GAAIU,GAAS9E,EAAO+E,gBAChBC,EAAmB,CAEvB,IAAIZ,EAAQa,aACR,EACID,IAAoBZ,EAAQc,gBAEzBd,EAAUA,EAAQa,aAG7B,OAAQD,GAAoB5E,KAAKK,eAAiBqE,GAAW,GAAO,GAGxE9E,EAAO0D,UAAUM,yBAA2B,SAAUmB,GAClD,GAAIhF,GAAOC,IAENA,MAAKgF,aACNhF,KAAKgF,YAAa,EAClBhF,KAAKuB,oBAELnC,EAAU2F,EAAQ,SAASE,GACvBlF,EAAKmF,qCAAqCD,KAG9CjF,KAAKgF,YAAa,EAClBhF,KAAKqB,iBAAiB0D,KAI9BnF,EAAO0D,UAAU4B,qCAAuC,SAAUD,GAC9D,GAAIE,GAAexE,CAEnBwE,GAAgD,kBAAzBnF,MAAKmB,gBAAiCnB,KAAKmB,gBAAgB8D,GACrBjF,KAAKoF,+BAA+BH,GAEjGtE,EAAMX,KAAKqF,sCAAsCJ,EAAMZ,aAAa,YAAac,GAEjFF,EAAMtE,IAAMA,GAGhBf,EAAO0D,UAAU8B,+BAAiC,SAAUH,GAC1D,MAAOrF,GAAO0F,gBAAgBtF,KAAKyB,YAAYwD,GAAQjF,KAAKmB,kBAY9DvB,EAAO0D,UAAU/B,kBAAoB,WACjCvB,KAAKuF,iBAAmB3F,EAAO0F,gBAAgB1F,EAAO4F,gBAAiBxF,KAAKkB,uBAGhFtB,EAAO0D,UAAU+B,sCAAwC,SAAU1E,EAAK8E,GACpE,MAAO9E,GACF+E,QAAQ,WAAY9F,EAAO+F,WAAWvB,MAAMqB,EAAezF,KAAKsB,YAChEoE,QAAQ,iBAAkB9F,EAAO+F,WAAWC,WAAW5F,KAAKuF,oBAGrE3F,EAAO4F,cAAgB,SAAuBK,GAC1C,OAAQA,GAAW3G,GAA0B,kBAAK,GAGtDU,EAAOgC,gBAAkB,SAA0BkE,EAAQC,GAIvD,IAHA,GAAIC,MACAzG,EAAMuG,EAAOtG,OAEVD,KACHyG,EAAIF,EAAOvG,IAAMwG,EAAaD,EAAOvG,GAGzC,OAAOyG,IAGXpG,EAAO+F,YACHC,WAAY,SAAUjG,GAClB,MAAiB,KAAVA,EAAc,GAAK,IAAMA,EAAQ,KAE5CyE,MAAO,SAAUA,EAAO4B,GACpB,MAAOA,GAAI5B,IAAUA,IAsB7BxE,EAAO0F,gBAAkB,SAAyBW,EAAWC,GAIzD,IAHA,GAAI3G,GAAgB2G,EAAW1G,OAC3BiG,EAAgBS,EAAW3G,EAAI,GAE5BA,KACC0G,GAAaC,EAAW3G,KACxBkG,EAAgBS,EAAW3G,GAInC,OAAOkG,IAGX7F,EAAO0D,UAAUO,oBAAsB,WACnC,GAAI9D,GAAOC,IAEXsC,GAASpD,EAAQ,SAAU,WACvBa,EAAK6D,yBAAyB7D,EAAKkC,SAI3CrC,EAAO0D,UAAUQ,oBAAsB,WACnC,GAAI/D,GAAOC,IAEXA,MAAKiB,UAAW,EAEhBjB,KAAKyD,SAAWvE,EAAOiH,YAAY,WAC/BpG,EAAKwD,eACNxD,EAAKc,aAERyB,EAASpD,EAAQ,SAAU,WACvBa,EAAKkB,UAAW,KAIxBrB,EAAOwG,uBAAyB,SAA+BC,GAC3D,MAAGA,GACQ,WAAY,MAAOnH,GAAOoH,aAG1B,WAAY,MAAOnH,GAASmB,gBAAgBiG,YAK3D3G,EAAO+E,cAAgB/E,EAAOwG,uBAAuBnD,OAAOK,UAAUvC,eAAeyF,KAAKtH,EAAQ,gBAGlGU,EAAOR,UAAYA,EAGG,gBAAXqH,SAAiD,gBAAnBA,QAAOC,QAE5CD,OAAOC,QAAUA,QAAU9G,EACF,kBAAX+G,SAAyBA,OAAOC,IAE9CD,OAAO,WAAc,MAAO/G,KACH,gBAAXV,KAEdA,EAAOU,OAASA,IAItBV,OAAQC"} \ No newline at end of file diff --git a/dist/Imager.min.js b/dist/Imager.min.js index 14830b5..b11c55e 100644 --- a/dist/Imager.min.js +++ b/dist/Imager.min.js @@ -1,2 +1,2 @@ -!function(e,t){"use strict";function i(e,t){for(var i=0,s=e.length,a=[];s>i;i++)a[i]=t(e[i],i);return a}function s(e){return e}function a(e,l){var h=this,c=t;l=l||{},void 0!==e&&("string"==typeof e?(l.selector=e,e=void 0):"undefined"==typeof e.length&&(l=e,e=void 0)),this.imagesOffScreen=[],this.viewportHeight=c.documentElement.clientHeight,this.selector=l.selector||".delayed-image-load",this.className=l.className||"image-replace",this.gif=c.createElement("img"),this.gif.src="data:image/gif;base64,R0lGODlhEAAJAIAAAP///wAAACH5BAEAAAAALAAAAAAQAAkAAAIKhI+py+0Po5yUFQA7",this.gif.className=this.className,this.gif.alt="",this.scrollDelay=l.scrollDelay||250,this.onResize=l.hasOwnProperty("onResize")?l.onResize:!0,this.lazyload=l.hasOwnProperty("lazyload")?l.lazyload:!1,this.scrolled=!1,this.availablePixelRatios=l.availablePixelRatios||[1,2],this.availableWidths=l.availableWidths||n,this.onImagesReplaced=l.onImagesReplaced||function(){},this.widthsMap={},this.refreshPixelRatio(),this.widthInterpolator=l.widthInterpolator||s,"function"!=typeof this.availableWidths&&("number"==typeof this.availableWidths.length?this.widthsMap=a.createWidthsMap(this.availableWidths,this.widthInterpolator):(this.widthsMap=this.availableWidths,this.availableWidths=o(this.availableWidths)),this.availableWidths=this.availableWidths.sort(function(e,t){return e-t})),e?(this.divs=i(e,s),this.selector=null):this.divs=i(c.querySelectorAll(this.selector),s),this.changeDivsToEmptyImages(),r(function(){h.init()})}var n,o,r,l;r=e.requestAnimationFrame||e.mozRequestAnimationFrame||e.webkitRequestAnimationFrame||function(t){e.setTimeout(t,1e3/60)},l=function(){return t.addEventListener?function(e,t,i){return e.addEventListener(t,i,!1)}:function(e,t,i){return e.attachEvent("on"+t,i)}}(),n=[96,130,165,200,235,270,304,340,375,410,445,485,520,555,590,625,660,695,736],o="function"==typeof Object.keys?Object.keys:function(e){var t,i=[];for(t in e)i.push(t);return i},a.prototype.scrollCheck=function(){this.scrolled&&(this.imagesOffScreen.length||e.clearInterval(this.interval),this.divs=this.imagesOffScreen.slice(0),this.imagesOffScreen.length=0,this.changeDivsToEmptyImages(),this.scrolled=!1)},a.prototype.init=function(){this.initialized=!0,this.checkImagesNeedReplacing(this.divs),this.onResize&&this.registerResizeEvent(),this.lazyload&&this.registerScrollEvent()},a.prototype.createGif=function(e){if(e.className.match(new RegExp("(^| )"+this.className+"( |$)")))return e;var t=this.gif.cloneNode(!1);return t.width=e.getAttribute("data-width"),t.setAttribute("data-src",e.getAttribute("data-src")),t.setAttribute("alt",e.getAttribute("data-alt")||this.gif.alt),e.parentNode.replaceChild(t,e),t},a.prototype.changeDivsToEmptyImages=function(){var e=this;i(this.divs,function(t,i){e.lazyload?e.isThisElementOnScreen(t)?e.divs[i]=e.createGif(t):e.imagesOffScreen.push(t):e.divs[i]=e.createGif(t)}),this.initialized&&this.checkImagesNeedReplacing(this.divs)},a.prototype.isThisElementOnScreen=function(e){var t=a.getPageOffset(),i=0;if(e.offsetParent)do i+=e.offsetTop;while(e=e.offsetParent);return ii;i++)a[i]=t(e[i],i);return a}function s(e){return e}function a(e,l){var h=this,c=t;l=l||{},void 0!==e&&("string"==typeof e?(l.selector=e,e=void 0):"undefined"==typeof e.length&&(l=e,e=void 0)),this.imagesOffScreen=[],this.viewportHeight=c.documentElement.clientHeight,this.selector=l.selector||".delayed-image-load",this.className=l.className||"image-replace",this.gif=c.createElement("img"),this.gif.src="data:image/gif;base64,R0lGODlhEAAJAIAAAP///wAAACH5BAEAAAAALAAAAAAQAAkAAAIKhI+py+0Po5yUFQA7",this.gif.className=this.className,this.gif.alt="",this.scrollDelay=l.scrollDelay||250,this.onResize=l.hasOwnProperty("onResize")?l.onResize:!0,this.lazyload=l.hasOwnProperty("lazyload")?l.lazyload:!1,this.scrolled=!1,this.availablePixelRatios=l.availablePixelRatios||[1,2],this.availableWidths=l.availableWidths||n,this.onImagesReplaced=l.onImagesReplaced||function(){},this.widthsMap={},this.refreshPixelRatio(),this.widthInterpolator=l.widthInterpolator||s,this.widthGetter=l.widthGetter||function(e){return e.clientWidth},"function"!=typeof this.availableWidths&&("number"==typeof this.availableWidths.length?this.widthsMap=a.createWidthsMap(this.availableWidths,this.widthInterpolator):(this.widthsMap=this.availableWidths,this.availableWidths=r(this.availableWidths)),this.availableWidths=this.availableWidths.sort(function(e,t){return e-t})),e?(this.divs=i(e,s),this.selector=null):this.divs=i(c.querySelectorAll(this.selector),s),this.changeDivsToEmptyImages(),o(function(){h.init()})}var n,r,o,l;o=e.requestAnimationFrame||e.mozRequestAnimationFrame||e.webkitRequestAnimationFrame||function(t){e.setTimeout(t,1e3/60)},l=function(){return t.addEventListener?function(e,t,i){return e.addEventListener(t,i,!1)}:function(e,t,i){return e.attachEvent("on"+t,i)}}(),n=[96,130,165,200,235,270,304,340,375,410,445,485,520,555,590,625,660,695,736],r="function"==typeof Object.keys?Object.keys:function(e){var t,i=[];for(t in e)i.push(t);return i},a.prototype.scrollCheck=function(){this.scrolled&&(this.imagesOffScreen.length||e.clearInterval(this.interval),this.divs=this.imagesOffScreen.slice(0),this.imagesOffScreen.length=0,this.changeDivsToEmptyImages(),this.scrolled=!1)},a.prototype.init=function(){this.initialized=!0,this.checkImagesNeedReplacing(this.divs),this.onResize&&this.registerResizeEvent(),this.lazyload&&this.registerScrollEvent()},a.prototype.createGif=function(e){if(e.className.match(new RegExp("(^| )"+this.className+"( |$)")))return e;var t=this.gif.cloneNode(!1);return t.width=e.getAttribute("data-width"),t.setAttribute("data-src",e.getAttribute("data-src")),t.setAttribute("alt",e.getAttribute("data-alt")||this.gif.alt),e.parentNode.replaceChild(t,e),t},a.prototype.changeDivsToEmptyImages=function(){var e=this;i(this.divs,function(t,i){e.lazyload?e.isThisElementOnScreen(t)?e.divs[i]=e.createGif(t):e.imagesOffScreen.push(t):e.divs[i]=e.createGif(t)}),this.initialized&&this.checkImagesNeedReplacing(this.divs)},a.prototype.isThisElementOnScreen=function(e){var t=a.getPageOffset(),i=0;if(e.offsetParent)do i+=e.offsetTop;while(e=e.offsetParent);return i