【JQuery Zepto插件】图片预加载

屏幕滚动到图片当前位置加载图片,把图片的真实地址写到data-src属性里即可。

<img src="占位图" data-src="img/foot.jpg" />

  

;(function(){
/*
图片预加载
@author liuming
@demo $('img[data-src]').ImgLoading();
*/
$.fn.ImgLoading=function(){
var aImgs = [],/*缓存图片列表*/
$win = $(window),
img,imgTop,
winH = $win.height(),
Timmer=null,
i,
scrollTop; $.each($(this),function(){
aImgs.push(this);
}); $win.bind('load scroll.ImgLoading',function(){
if(Timmer){clearTimeout(Timmer);}
Timmer = setTimeout(eachImg,100);
}); function eachImg(){
/*数组为空 清除事件*/
if(aImgs.length==0){return $win.unbind('scroll.ImgLoading');}
scrollTop = $win.scrollTop();
for(i=aImgs.length-1; i>-1; i--){
img = $(aImgs[i]);
imgTop = img.offset().top;
/*判断图片正在屏幕中 */
if(scrollTop+winH > imgTop && scrollTop<imgTop+winH){
img.attr('src',img.attr('data-src'));
aImgs.splice(i,1);
}
}
} } })(); $('img[data-src]').ImgLoading();

  

上一篇:PowerShell查询sql server


下一篇:[转载]jQuery.lazyload详解 - 图片延时加载