对img和div的背景图片进行懒加载。
在data-original写入真正的链接。
html

1
2
<div data-original="example1.jpg"></div>
<img data-original="example2.jpg">

javascript

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
// 注意: 需要引入jQuery
(function() {
// 获取window的引用:
var $window = $(window);
// 获取包含data-original属性的img,并以jQuery对象存入数组:
var lazyImgs = $('img[data-original]')
var xxx=[]
$('img[data-original],div[data-original]').each(function(index,element){
xxx.push($(this))
})
// 定义事件函数:
var onScroll = function() {
// 获取页面滚动的高度:
var wtop = $window.scrollTop();
// 判断是否还有未加载的img:
if (xxx.length > 0) {
// 获取可视区域高度:
var wheight = $window.height();
// 存放待删除的索引:
var loadedIndex = [];
// 循环处理数组的每个img元素:
$.each(xxx, function (index, i) {
// 判断是否在可视范围内:
if (i.offset().top - wtop < wheight) {
//区分img与div元素区别
if(i[0].tagName === 'IMG'){
//设置img的src属性
i.attr('src', i.attr('data-original'));
}else if(i[0].tagName === 'DIV'){
//设置div背景图片
i.css("background-image","url("+i.attr('data-original')+')')
}
// 添加到待删除数组:
loadedIndex.unshift(index);
}
});
// 删除已处理的对象:
$.each(loadedIndex, function (i,index) {
xxx.splice(index, 1);
});
}
};
//进入页面先执行一次
onScroll();
//绑定scroll事件
$(window).scroll(onScroll);
})()