/* **************图片预加载插件****************** ///作者:没剑(2008-06-23) ///http://regedit.cnblogs.com ///说明:在图片加载前显示一个加载标志,当图片下载完毕后显示图片出来 可对图片进行是否自动缩放功能 此插件使用时可让页面先加载,而图片后加载的方式, 解决了平时使用时要在图片显示出来后才能进行缩放时撑大布局的问题 ///参数设置: scaling 是否等比例自动缩放 width 图片最大高 height 图片最大宽 loadpic 加载中的图片路径 */ jquery.fn.loadimage=function(scaling,width,height,loadpic){ if(loadpic==null)loadpic="images/load.gif"; return this.each(function(){ var t=$(this); var src=$(this).attr("src") var img=new image(); //alert("loading...") img.src=src; //自动缩放图片 var autoscaling=function(){ var twidth=width; var theight=height; if(scaling){ var sjwidth=img.width; var sjheight=img.height; if(sjwidth>width||sjheight>height) { if(sjwidth/sjheight>width/height) { twidth=width; theight=width*sjheight/sjwidth; } else { theight=height; twidth=height*sjwidth/sjheight; } } else { twidth=sjwidth; theight=sjheight; } } t.height(theight); t.width(twidth); t.css("margin-top",((height-theight)/2)+"px"); } //处理ff下会自动读取缓存图片 if(img.complete){ //alert("gettocache!"); autoscaling(); return; } $(this).attr("src",""); var loading=$("\"加载中...\""); t.hide(); t.after(loading); $(img).load(function(){ autoscaling(); loading.remove(); t.attr("src",this.src); t.show(); }); }); }