-
Notifications
You must be signed in to change notification settings - Fork 28
/
Copy pathjquery.imagefit.min.js
5 lines (5 loc) · 2.23 KB
/
jquery.imagefit.min.js
1
2
3
4
5
(function(l){l.fn.imagefit=function(t){var m=l.extend({},l.fn.imagefit.defaults,t),a=l("html");a.data("main",this);a.data("ignore",m.ignore);a.data("mode",m.mode);a.data("hor",m.halign);a.data("ver",m.valign);a.data("force",m.force);var f=a.data("main").width(),g=a.data("main").height(),c=0,d=0,r=0;a.data("main").css("overflow","hidden");a.data("main").css("position","relative");a.data("main").find("img:not("+a.data("ignore")+")").each(function(q){var b=l(this);m.onStart(q,a.data("main"),b);b.load(function(){m.onLoad(q,
a.data("main"),b)});b.error(function(){m.onError(q,a.data("main"),b)});b.css("position","absolute");var n=l(this).width(),p=l(this).height(),h=0,k=0,e=[];++r;l("<img/>").attr("src",b.attr("src")).load(function(){e.w=this.width;e.h=this.height;"outside"==a.data("mode")?(f/g>n/p?(!1===a.data("force")&&(f>e.w||g>e.h)?(c=e.w,d=e.h,h=Math.round((g-d)/2),k="left"==a.data("hor")?0:"right"==a.data("hor")?k=Math.round((f-c)/2*2):Math.round((f-c)/2)):(c=f,d=Math.round(c*p/n),h=-Math.abs(Math.round((d-g)/2))),
"top"==a.data("ver")?b.css("top","0"):"bottom"==a.data("ver")?b.css("top",2*h+"px"):b.css("top",h+"px"),b.css("left",k+"px")):(!1===a.data("force")&&(f>e.w||g>e.h)?(c=e.w,d=e.h,h=Math.round((g-d)/2),k=Math.round((f-c)/2)):(d=g,c=Math.round(d*n/p),k=-Math.abs(Math.round((c-f)/2))),"left"==a.data("hor")?(b.css("top",h+"px"),b.css("left","0")):("right"==a.data("hor")?b.css("left",2*k+"px"):b.css("left",k+"px"),b.css("top",h+"px"))),b.width(c),b.height(d),b.css("width",c),b.css("height",d)):"inside"==
a.data("mode")&&(f/g>n/p?(!1===a.data("force")&&f>e.w&&g>e.h?(c=e.w,d=e.h,h=Math.round((g-d)/2)):(d=g,c=Math.round(d*n/p)),k=Math.round((f-c)/2)):!1===a.data("force")&&f>e.w&&g>e.h?(c=e.w,d=e.h,h=Math.round((g-d)/2),k=Math.round((f-c)/2)):(c=f,d=Math.round(c*p/n),h=Math.round((g-d)/2)),b.css("left",k+"px"),b.css("top",h+"px"),"left"==a.data("hor")&&b.css("left","0"),"top"==a.data("ver")&&b.css("top","0"),"right"==a.data("hor")&&b.css("left",2*k+"px"),"bottom"==a.data("ver")&&b.css("top",2*h+"px"),
b.width(c),b.height(d),b.css("width",c),b.css("height",d))})});console.log("imageFit found "+r+" images.")};l.fn.imagefit.defaults={ignore:"",mode:"outside",halign:"center",valign:"middle",force:!0,onLoad:null,onError:null,onStart:null}})(jQuery);