JS实现图片延迟加载
- 格式:docx
- 大小:16.76 KB
- 文档页数:2
一、JS实现图片延迟加载
1、引入zyload.js文件
2、然后将页面中需要延迟加载的图片进行一定处理,src就不是图片真正的路径,
而是本地的一张默认的初始化图片,真正的图片的路径放在lazyload属性中
3、这样就可以实现图片的延迟加载
"/TR/ ; xhtml1/DTD/xhtml1-transitional.dtd">
二、延迟加载js代码:
/*
图片延迟加载原始版本
图片加载的顺序只能是从上到下,不能是可见区域的图片加载。
如果进行分页时,处于浏览器的底部,就根本没有图片延迟加载的效果,图片全部被加载完了
*/
var lazyLoad = {
Init: function () {
return $("img[lazyload]");
},
Calculate: function (lazyloadobject) {
var windowHeight = $(window).height();
var arrReturn = {};
var _scrollTop;
if (lazyloadobject.length == 0) {
return null;
}
else {
lazyloadobject.each(function (i) { _scrollTop = parseInt($(this).offset().top -
windowHeight);
if (!arrReturn.hasOwnProperty(_scrollTop)) {
arrReturn[_scrollTop] = new Array();
}
arrReturn[_scrollTop].push($(this));
});
this.ArrLoad = arrReturn;
return arrReturn;
}
},
ArrLoad: null,
IsLoad: function (scrolltop, objectstop) {
if (objectstop != null && objectstop != {}) {
for (i in this.ArrLoad) {
if (parseInt(i) <= scrolltop &&
this.ArrLoad.hasOwnProperty(i)) {
for (j = 0; j < this.ArrLoad[i].length; j++) {
this.ArrLoad[i][j].attr("src",
this.ArrLoad[i][j].attr("lazyload")).removeAttr("lazyload");
}
delete this.ArrLoad[i];
}
}
}
},
Run: function () {
var lazyLoadObject = this.Init();
this.Calculate(lazyLoadObject);
arrScrollTop = this.ArrLoad;
if (arrScrollTop == null) {
return false;
}
else {
var _this = this;
_this.IsLoad($(window).scrollTop(), arrScrollTop);
$(window).scroll(function () {
_this.IsLoad($(this).scrollTop(), arrScrollTop);
});
}
}
}