基于jquery的图片懒加载js

在京东商城浏览时, 会发现产品图片只显示了一屏, 当页面向下滚动时下面的产品图片才逐渐加载.

以下是实现代码(基于jquery):

function lazyload(option){
	var settings={
		defObj:null,
		defHeight:0
	};
	settings=$.extend(settings,option||{});
	var defHeight=settings.defHeight,defObj=(typeof settings.defObj=="object")?settings.defObj.find("img"):$(settings.defObj).find("img");
	var pageTop=function(){
		return document.documentElement.clientHeight+Math.max(document.documentElement.scrollTop,document.body.scrollTop)-settings.defHeight;
	};
	var imgLoad=function(){
		defObj.each(function(){				
			if ($(this).offset().top<=pageTop()){
				var src2=$(this).attr("src2");
				if (src2){
					$(this).attr("src",src2).removeAttr("src2");
				}
			}
		});
	};
	imgLoad();

	// 绑定滚动事件
	$(window).bind("scroll",function(){			
		imgLoad();
	});
}

lazyload({
	defObj:"#plist"
})

posted @ 2010-06-29 13:09  ascrat  阅读(1550)  评论(2编辑  收藏  举报