forked from tubalmartin/riloadr
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathriloadr.min.js
2 lines (2 loc) · 4.09 KB
/
riloadr.min.js
1
2
/*! Riloadr.js 1.3.2 (c) 2012 Tubal Martin - MIT license */
!function(e){typeof define=="function"&&define.amd?define(e):window.Riloadr=e()}(function(){"use strict";function tt(e){function z(){lt(H,c,M),lt(H,h,D),$&&(et=H[N],lt(H,_,j))}function W(){ct(H,c,M),ct(H,h,D),$&&ct(H,_,j)}function K(e,t){e[v]=0,e[y]=n,e[p]=Q,e[d]=G,e.src=it(e,u,R),F.splice(t,1)}function Q(){var t=this;t[p]=t[d]=i,t[b]=t[b].replace(w,"$1$2"),p in e&&e[p][o](t),tt()}function G(){var n=this;d in e&&e[d][o](n),n[v]<k?(n[v]++,n.src=it(n,u,n[y]?U:R,t)):y in q&&!n[y]?(n[v]=0,n[y]=t,n.src=it(n,u,U)):tt()}function tt(){I--,I==0&&S in e&&e[S]()}var s=this,u=e.base||f,a=e.breakpoints||ft('"breakpoints" not defined.'),m=e.name||"responsive",w=new RegExp("(^|\\s)"+m+"(\\s|$)"),E=e.defer&&e.defer.toLowerCase()||n,T=e.foldDistance||100,C=e.ignoreLowBandwidth||n,k=e[v]||0,L=e.root||i,A=E==="belowfold"&&V&&!Y,M=A&&ot(function(){s[x]()},r),D=A&&ut(function(){s[x]()},r),j=A&&ut(function(){H[N]!==et&&(et=H[N],s[x]())},r),F=[],I=0,q,R,U;s[x]=function(e){at(function(n,r,s){if(!F[l]||e===t){A&&z(),n=X&&L[O]("img."+m)||L.getElementsByTagName("img"),s=0;while(r=n[s])r&&!r[g]&&(X||r[b].indexOf(m)>=0)&&(r[g]=t,F.push(r),I++),s++}if(F[l]){s=0;while(r=F[s])r&&(!A||A&&!st(r,T))&&(K(r,s),s--),s++}A&&!F[l]&&W(),n=r=i})},Z(function(){P=B.body,L=B.getElementById(L)||P,J=J||rt(),q=nt(a,J,C),R=q.name,U=q[y],!E||A?s[x]():ht(s[x])})}function nt(e,t,n){var r=t,i=0,s={},o,u,a,f;while(o=e[i]){u=o.minWidth,a=o.maxWidth,f=o.minDevicePixelRatio;if(t>0){if(u&&a&&t>=u&&t<=a||u&&!a&&t>=u||a&&!u&&t<=a)if(!f||f&&Q>=f&&(n||!n&&!G))s=o}else if(r<=0||u<r||a<r)r=u||a||r,s=o;i++}return s}function rt(){var e=Math,t=[j.clientWidth,j.offsetWidth,P.clientWidth],n=e.ceil(K/Q),r=t[l],i=0,s;for(;i<r;i++)isNaN(t[i])&&(t.splice(i,1),i--);return t[l]&&(s=e.max[u](e,t),isNaN(n)||(s=e.min(n,s))),s||n||0}function it(e,t,n,r){var i=(e.getAttribute("data-base")||t)+(e.getAttribute("data-src")||f);return r&&(i+=(z.test(i)?"&":"?")+"riloadrts="+(new Date).getTime()),i.replace(W,n)}function st(e,t){var n=j[E]||P[E]||0,r=B.compatMode==="CSS1Compat"&&j[k]||P&&P[k]||j[k];return r<=e[D]().top-n-t}function G(){var e=H.navigator,t=e.connection||e.mozConnection||e.webkitConnection||e.oConnection||e.msConnection||{},n=t.type||"unknown",r=+t.bandwidth||Infinity;return r>0&&r<.1||/^[23]g|3|4$/.test(n+f)}function ot(e,t){function f(){a=new Date,o=i,e[u](s,n)}var n,r,s,o,a=0;return function(){var i=new Date,l=t-(i-a);return n=arguments,s=this,l<=0?(a=i,r=e[u](s,n)):o||(o=F(f,l)),r}}function ut(e,t,n){function f(){a=i,n||e[u](o,r)}var r,s,o,a;return function(){var i=n&&!a;return r=arguments,o=this,clearTimeout(a),a=F(f,t),i&&(s=e[u](o,r)),s}}function at(e){var t=Array[w].slice[o](arguments,1);F(function(){return e[u](i,t)},1)}function ft(e){throw new Error("Riloadr: "+e)}function lt(e,t,r){e[R](q+t,r,n)}function ct(e,t,r){e[U](q+t,r,n)}function ht(e){if(B[T]===m)at(e);else{var t=function(){ct(H,s,t),at(e)};lt(H,s,t)}}var e="on",t=!0,n=!1,r=250,i=null,s="load",o="call",u="apply",a="error",f="",l="length",c="scroll",h="resize",p=e+s,d=e+a,v="retries",m="complete",g="riloaded",y="fallback",b="className",w="prototype",E="clientTop",S=e+m,x="loadImages",T="readyState",N="orientation",C="attachEvent",k="clientHeight",L="EventListener",A="readystatechange",O="querySelectorAll",M="add"+L,_=N+"change",D="getBoundingClientRect",P,H=window,B=H.document,j=B.documentElement,F=H.setTimeout,I=M in B,q=I?f:e,R=I?M:C,U=I?"remove"+L:"detachEvent",z=/\?/,W=/{breakpoint-name}/gi,X=O in B,V=D in j,$=N in H&&e+_ in H,J,K=H.screen.width,Q=H.devicePixelRatio||1,G=G(),Y=Object[w].toString[o](H.operamini)==="[object OperaMini]",Z,et;return j[b]=j[b].replace(/(^|\s)no-js(\s|$)/,"$1$2"),tt.version="1.3.2",tt[w].riload=function(){this[x](t)},Z=function(){function a(e){if(!o){if(!B.body)return at(a);o=t;while(e=u.shift())at(e)}}function f(){if(I||B[T]===m)ct(B,I?e:A,f),a()}var e="DOMContentLoaded",r=n,o=n,u=[];if(B[T]===m)at(a);else{if(I)lt(B,e,f);else{lt(B,A,f);try{r=H.frameElement==i&&docElem}catch(l){}r&&r.doScroll&&function c(){if(!o){try{r.doScroll("left")}catch(e){return F(c,50)}a()}}()}lt(H,s,a)}return function(e){o?at(e):u.push(e)}}(),tt});