zoukankan      html  css  js  c++  java
  • JavaScript之图片懒加载的实现

    图片懒加载指的是在浏览过程中随着需要才被加载出来,例如某宝上面浏览商品时,会伴随很多的图片,如果一次全部加载出来的话,显然资源有些浪费,并且加载速度也会相对降低,那么懒加载的实现很重要。即随着浏览翻阅时,下面的图片才被加载出来,这样又不浪费带宽,访问网页速度也很快,用户体验也会有所提升。

    说了这么多,其实所需要注意的要点有:

    1. 屏幕可视区域的高度
    2. 每张图片在文档中的高度
    3. 图片符合要求进行加载时,将图片地址赋值给属性 src
    4. 对屏幕滚动事件进行监控
    5. 首次进入网页未滑动屏幕时要显示的图片

    代码如下:

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>图片懒加载实现</title>
     6     <style>
     7         img{
     8             width: 300px;
     9         }
    10     </style>
    11 </head>
    12 <body>
    13 <div>
    14     <p><img src="" data-original="./Saved Pictures/shawu.jpg" /></p>
    15     <p><img src="" data-original="./Saved Pictures/ass.jpg" /></p>
    16     <p><img src="" data-original="./Saved Pictures/LmLm.jpg" /></p>
    17     <p><img src="" data-original="./Saved Pictures/和服.jpg" /></p>
    18     <p><img src="" data-original="./Saved Pictures/花亭.jpg" /></p>
    19     <p><img src="" data-original="./Saved Pictures/康娜.jpg" /></p>
    20     <p><img src="" data-original="./Saved Pictures/初音未来.jpg" /></p>
    21     <p><img src="" data-original="./Saved Pictures/红发少女.jpg" /></p>
    22     <p><img src="" data-original="./Saved Pictures/shawu.jpg" /></p>
    23     <p><img src="" data-original="./Saved Pictures/ass.jpg" /></p>
    24     <p><img src="" data-original="./Saved Pictures/LmLm.jpg" /></p>
    25     <p><img src="" data-original="./Saved Pictures/和服.jpg" /></p>
    26     <p><img src="" data-original="./Saved Pictures/花亭.jpg" /></p>
    27     <p><img src="" data-original="./Saved Pictures/康娜.jpg" /></p>
    28     <p><img src="" data-original="./Saved Pictures/初音未来.jpg" /></p>
    29     <p><img src="" data-original="./Saved Pictures/红发少女.jpg" /></p>
    30     <p><img src="" data-original="./Saved Pictures/shawu.jpg" /></p>
    31     <p><img src="" data-original="./Saved Pictures/ass.jpg" /></p>
    32     <p><img src="" data-original="./Saved Pictures/LmLm.jpg" /></p>
    33     <p><img src="" data-original="./Saved Pictures/和服.jpg" /></p>
    34     <p><img src="" data-original="./Saved Pictures/花亭.jpg" /></p>
    35     <p><img src="" data-original="./Saved Pictures/康娜.jpg" /></p>
    36     <p><img src="" data-original="./Saved Pictures/初音未来.jpg" /></p>
    37     <p><img src="" data-original="./Saved Pictures/红发少女.jpg" /></p>
    38 
    39 </div>
    40 <script src="jquery-3.2.1.slim.js"></script>
    41 <script>
    42     var wHeight=$(window).height(); //获取屏幕可视高度
    43     $('img').each(function () {     //对图片进行循环
    44         var ownHeight=$(this).offset().top;     //获取当前图片在文档中的位置
    45         if(ownHeight<=wHeight){     //如果当前图片位置在屏幕可视范围之内加载此图片
    46             $(this).attr('src',$(this).attr('data-original'));
    47         }
    48     });
    49 
    50     $(window).on('scroll',function(){       //添加屏幕滚动事件
    51         $('img').each(function () {
    52             var hasSorollTop=$(window).scrollTop();     //获取屏幕已滚动高度
    53             var ownHeight=$(this).offset().top;
    54             if(ownHeight<=(hasSorollTop+wHeight+500)){
    55                 //当图片在屏幕滚动时,距离可视区域500像素时加载此图片,
    56                 // 以保证查看此图时,下面的一张以提前加载完成
    57                 $(this).attr('src',$(this).attr('data-original'));
    58             }
    59         });
    60     });
    61 </script>
    62 </body>
    63 </html>

    在进行JavaScript练习时,不要一下将代码写完,每进行一步要对其进行测试一下,不然到最后哪里出现错误修改起来相对比较麻烦。 

  • 相关阅读:
    JD . 圆角矩形、权重层级、浮动撑开盒子及元素的默认间距、清除浮动、隐藏盒子、盒子的撑开与撑破、子盒子垂直居中|不占位置
    mac开发环境配置
    CSS常见兼容性问题总结
    初识Javascript.03 -- switch、自增、while循环、for、break、continue、数组、遍历数组、合并数组concat
    初识 Javascript.02 -- Date日期、Math对象、数据类型转换、字符串、布尔Boolean、逻辑运算符、if else 、三元表达式、代码调试方法、
    初识 Javascript.01 -- Javascript基础|输出方式、变量、变量命名规范、数据类型、
    CSS -- 练习之制作简单商品图
    CSS -- 练习(待续优化)
    javascript中作用域
    javascript中构造函数的三种方式
  • 原文地址:https://www.cnblogs.com/xsmile/p/8399608.html
Copyright © 2011-2022 走看看