图片懒加载插件

<body >
    <img src="默认图片" data-echo="真正图片地址"  width="800" height="800" alt="">
    <img src="默认图片" data-echo="真正图片地址"  width="800" height="800" alt="">
    <img src="默认图片" data-echo="真正图片地址"  width="800" height="800" alt="">
    <img src="默认图片" data-echo="真正图片地址"  width="800" height="800" alt="">
    <img src="默认图片" data-echo="真正图片地址"  width="800" height="800" alt="">

    </body>
    <script src="echo.js"></script>
    <script>
   window.onload = function(){
Echo.init({
offset: 200, //设置图片距离可视区域多少像素被加载(纵向)
           throttle: 1050  //设置图片延迟加载的时间
});
   }

    </script>

echo.js  代码

window.Echo = (function(window, document, undefined) {


'use strict';


var store = [],
offset,
throttle,
poll;


var _inView = function(el) {
var coords = el.getBoundingClientRect();
return ((coords.top >= 0 && coords.left >= 0 && coords.top) <= (window.innerHeight || document.documentElement.clientHeight) + parseInt(offset));
};


var _pollImages = function() {
for (var i = store.length; i--;) {
var self = store[i];
if (_inView(self)) {
self.src = self.getAttribute('data-echo');
store.splice(i, 1);
}
}
};


var _throttle = function() {
clearTimeout(poll);
poll = setTimeout(_pollImages, throttle);
};


var init = function(obj) {
var nodes = document.querySelectorAll('[data-echo]');
var opts = obj || {};
offset = opts.offset || 0;
throttle = opts.throttle || 250;


for (var i = 0; i < nodes.length; i++) {
store.push(nodes[i]);
}


_throttle();


if (document.addEventListener) {
window.addEventListener('scroll', _throttle, false);
} else {
window.attachEvent('onscroll', _throttle);
}
};


return {
init: init,
render: _throttle
};

})(window, document);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值