图片懒加载的原生JS和Jquery的两种方式

首先是在img结构中加入“data-xxx”如下:

<img src="" data-src="图片路径" alt="">

<img src="" data-src="图片路径" alt="">

<img src="" data-src="图片路径" alt="">

JavaScript部分:

<script>

            var num = document.getElementsByTagName('img').length;

            var img = document.getElementsByTagName("img");

            var n = 0; //存储图片加载到的位置,避免每次都从第一张图片开始遍历

            lazyload(); //页面载入完毕加载可是区域内的图片

            window.onscroll = lazyload;

            function lazyload() { //监听页面滚动事件

            var seeHeight = document.documentElement.clientHeight; //可见区域高度

            var scrollTop = document.documentElement.scrollTop || document.body.scrollTop; //滚动条距离顶部高度

            for (var i = n; i < num; i++) {

                 if (img[i].offsetTop < seeHeight + scrollTop) {

                        if (img[i].getAttribute("src") == "") {

                             img[i].src = img[i].getAttribute("data-src");

                                             }

                            n = i + 1;

                                  }

                          }

                  }

</script>

jQuery:

<script>

              var n = 0,

              imgNum = $("img").length,

              img = $('img');

              lazyload();

              $(window).scroll(lazyload);

              function lazyload(event) {

                          for (var i = n; i < imgNum; i++) {

                         if (img.eq(i).offset().top < parseInt($(window).height()) + parseInt($(window).scrollTop())) {

                                   if (img.eq(i).attr("src") == "") {

                                             var src = img.eq(i).attr("data-src");

                                             img.eq(i).attr("src", src);

                                             n = i + 1;

                                                 }

                                              }

                                         }

                                 }

</script>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 以下是常用的代码收集,学习用。转自豪情博客园 1. PC - js 返回指定范围的随机数(m-n之间)的公式 re...
    自由加咖啡阅读 1,014评论 0 1
  • 不支持上传文件,所以就复制过来了。作者信息什么的都没删。对前端基本属于一窍不通,所以没有任何修改,反正用着没问题就...
    全栈在路上阅读 1,989评论 0 2
  • 单例模式 适用场景:可能会在场景中使用到对象,但只有一个实例,加载时并不主动创建,需要时才创建 最常见的单例模式,...
    Obeing阅读 2,092评论 1 10
  • document.write(''); } if ( (document.cookie && document.c...
    一副怂样阅读 715评论 0 1
  • 2
    张东波阅读 152评论 0 0