对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); })()
|