当前位置:   article > 正文

jQuery 插件 lazyload.js 的插件使用——实现图片的延迟加载_lazyload jail

lazyload jail

古之立大事者,不惟有超世之才,亦必有坚忍不拔之志——苏轼

写在前面

lazyload.js 是一个基于 JQuery 的插件,可以用来缓冲加载图片。为什么要缓冲加载图片呢?
如果一个网页很长并且有很多图片的话,下载图片就需要很多时间,那么就会影响整个网页的加载速度,而这款延迟加载插件,会通过你的滚动情况来加载你需要看的图片,然后它才会从后台请求下载图片,最后显示出来。通过这个插件,可以在需要显示图片的时候,才下载图片,从而可以减少服务器的压力,提高页面加载速度。

lazyload 插件的优点:

  • 可以提高 HTML 页面加载速度
  • 可以帮助减少服务器负载

lazyload 插件的实现原理:修改目标 <img>src 属性为 orginal 属性,从而中断图片的加载,然后检测滚动条的位置,如果当前页面已经显示,再将<img>src 属性还原加载图片,制造缓冲加载的效果。

如何使用 lazyload 插件

  1. lazyload 插件的使用是依赖于 jQuery 的,所以必须按照顺序进行引入:

    示例代码如下所示:

    <!-- 1. 引入 jQuery 文件 -->
    <script src="./library/jQuery 1.12.4.js"></script>
    <!-- 引入 lazyload 插件 -->
    <script src="./library/tuupola-jquery_lazyload/jquery.lazyload.js"></script>
    
    • 1
    • 2
    • 3
    • 4
  2. <img> 元素通过 data-original 属性设置图片的真实路径,原 src 属性的值指向占位图片,并为 <img> 添加 class 属性值为 lazyload 方便 JavaScript 定位操作

    示例代码如下所示;

    <img class="lazyload" data-original="./imgs/1.png" src="./imgs/timg.png">
    
    • 1
  3. 获取所有需要 lazyload 插件懒加载的图片元素,调用 lazyload() 核心方法:

    $('.lazyload').lazyload();
    
    • 1

lazyload 核心方法的参数

lazyload 插件的核心方法 lazyload() 方法,该方法具有 options 参数,具体说明如下表所示

属性名称默认值描述备注
threshold0临界点设置大于零的数值,让图片距离屏幕一 定像素时提前加载
failure_limit0当图片不连续时滚动页面的时候, lazyload 会循环需要加载的图片。在循环中检测图片是否在可视区域内。
默认情况下载找到第一张不在可见区域的图片会停止循环。图片被默认是流式布局。
containerwindow触发可滚动的容器默认是浏览器的滚动条。 允许自定义带滚动条的元素
eventscroll设置事件来触发加载clickmouseover 等,可以自定义事件
effectshow载入特效备选值为 showfadeln
ship_invisibletrue加载隐藏的图片默认忽略隐藏图片,设置为 false 表示加载隐藏图片
placeholder默认的占位图片可以直接把占位的图片路径赋给<img>src 属性

dome

示例代码如下所示

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>lazyload 插件</title>
  <!-- 1. 引入 jQuery 文件 -->
  <script src="./library/jQuery 1.12.4.js"></script>
  <!-- 引入 lazyload 插件 -->
  <script src="./library/tuupola-jquery_lazyload/jquery.lazyload.js"></script>
  <style>
    img {
      display: block;
      width: 600px;
      margin: 10px auto;
    }
  </style>
</head>

<body>
  <!-- 
    data-original 属性设置图片的真实路径,
    src 属性的值指向占位图片,
    class 属性值为 lazyload 方便 JavaScript 定位操作
   -->
  <img class="lazyload" data-original="./imgs/1.png" src="./imgs/timg.png">
  <img class="lazyload" data-original="./imgs/2.png" src="./imgs/timg.png">
  <img class="lazyload" data-original="./imgs/3.png" src="./imgs/timg.png">
  <img class="lazyload" data-original="./imgs/4.png" src="./imgs/timg.png">
  <img class="lazyload" data-original="./imgs/5.png" src="./imgs/timg.png">
  <img class="lazyload" data-original="./imgs/6.png" src="./imgs/timg.png">
  <img class="lazyload" data-original="./imgs/7.png" src="./imgs/timg.png">
  <img class="lazyload" data-original="./imgs/8.png" src="./imgs/timg.png">
  <img class="lazyload" data-original="./imgs/9.png" src="./imgs/timg.png">
  <img class="lazyload" data-original="./imgs/10.png" src="./imgs/timg.png">
  <script>
    $('.lazyload').lazyload({
      // 将加载时机修改为 鼠标悬停时。
      event: 'mouseover'
    });
  </script>
</body>

</html>
  • 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

效果图如下所示

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/120918
推荐阅读
相关标签
  

闽ICP备14008679号