JS实现图片延迟加载

  • 格式:docx
  • 大小:16.76 KB
  • 文档页数:2

一、JS实现图片延迟加载

1、引入zyload.js文件

2、然后将页面中需要延迟加载的图片进行一定处理,src就不是图片真正的路径,

而是本地的一张默认的初始化图片,真正的图片的路径放在lazyload属性中

3、这样就可以实现图片的延迟加载

"/TR/ ; xhtml1/DTD/xhtml1-transitional.dtd">

t

二、延迟加载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);

});

}

}

}