图片懒加载

图片懒加载

当网站的要显示的图片比较多的时候,要请求的次数比较多,会增加用户的等待时间,利用懒加载可以大大提高用户的体验。

懒加载思路:当图片出现的时候,加载图片。如果用户没有继续往下浏览,下面的图片就不加载。

html5定义的data-*属性允许我们在标签内来嵌入自定义数据,这样我们就可以将img的标签内的src里的图片地址放到data-xx里边存储。如果src为空的话,就不会被请求。当图片进入可视区域的时候,将data-xx里边的图片地址再赋值给该img标签的src就可以了。

例: 

<img src="" data-img="http://imgtu.5011.net/uploads/content/20170411/9651441491896247.jpg" alt="" >
js代码:

(function (window,document) {
    window.onload = function () {
      //可视窗口大小
      var viewportHeightSize = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
      //获取所有的img标签
      var imgs = document.getElementsByTagName('img');
      function lazyload(){
        //网页被卷上去的高
        var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
        for(var i=0; i<imgs.length; i++) {
          var top =scrollTop+viewportHeightSize-imgs[i].offsetTop;
          if(top > 0){
            imgs[i].src = imgs[i].getAttribute('data-img');
          }
        }
      }
      //进入页面首先调用一次,否则一开始就在可视区域的图片就无法显示
      lazyload();
      //给window对象注册滚动监听事件
      window.οnscrοll=function () {
        lazyload();
      }
    }
  })(window,document)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值