当前位置:   article > 正文

利用Jquery Lazyload JS插件实现网页图片延迟加载_jquery.lazyload.min.js

jquery.lazyload.min.js

Jquery Lazyload是一款网页图片延迟加载JS插件,本文介绍该JS的使用方法。

最新的jquery lazyload可以单独使用(即不依赖jquery),本文介绍的是依赖jquery的使用及配置方法。

Github项目地址:https://github.com/tuupola/lazyload

本文使用的是1.9.7版本(实际与1.9.6版本一致)

首先需要引用jquery,如:​​https://libs.afengim.com/libs/jquery-3.5.1/jquery-3.5.1-min.js​

之后引用​​jquery.lazyload.js​​及​​jquery.scrollstop.js​

1.实例代码

  1. <!DOCTYPE html>
  2. <html lang="zh">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Jquery lazyload</title>
  6. <script src="https://libs.afengim.com/libs/jquery-3.5.1/jquery-3.5.1-min.js" type="application/javascript"></script>
  7. <script src="https://libs.afengim.com/libs/lazyload-1.9.7/jquery.lazyload.min.js"
  8. type="application/javascript"></script>
  9. <script src="https://libs.afengim.com/libs/lazyload-1.9.7/jquery.scrollstop.min.js"
  10. type="application/javascript"></script>
  11. <style>
  12. img {
  13. max-width: 100%;
  14. height: 100%;
  15. object-fit: cover;
  16. }
  17. </style>
  18. </head>
  19. <body>
  20. <img class="lazy" data-original="https://tools.afengim.com/demo/jquery-lazyload/images/1.webp" height="574"
  21. width="765"/>
  22. <img class="lazy" data-original="https://tools.afengim.com/demo/jquery-lazyload/images/2.webp" height="574"
  23. width="765"/>
  24. <img class="lazy" data-original="https://tools.afengim.com/demo/jquery-lazyload/images/3.webp" height="574"
  25. width="765"/>
  26. <img class="lazy" data-original="https://tools.afengim.com/demo/jquery-lazyload/images/4.webp" height="574"
  27. width="765"/>
  28. <img class="lazy" data-original="https://tools.afengim.com/demo/jquery-lazyload/images/5.webp" height="574"
  29. width="765"/>
  30. <img class="lazy" data-original="https://tools.afengim.com/demo/jquery-lazyload/images/6.webp" height="574"
  31. width="765"/>
  32. <img class="lazy" data-original="https://tools.afengim.com/demo/jquery-lazyload/images/7.webp" height="574"
  33. width="765"/>
  34. <img class="lazy" data-original="https://tools.afengim.com/demo/jquery-lazyload/images/8.webp" height="574"
  35. width="765"/>
  36. <img class="lazy" data-original="https://tools.afengim.com/demo/jquery-lazyload/images/9.webp" height="574"
  37. width="765"/>
  38. <img class="lazy" data-original="https://tools.afengim.com/demo/jquery-lazyload/images/10.webp" height="574"
  39. width="765"/>
  40. <img class="lazy" data-original="https://tools.afengim.com/demo/jquery-lazyload/images/11.webp" height="574"
  41. width="765"/>
  42. <img class="lazy" data-original="https://tools.afengim.com/demo/jquery-lazyload/images/12.webp" height="574"
  43. width="765"/>
  44. <img class="lazy" data-original="https://tools.afengim.com/demo/jquery-lazyload/images/13.webp" height="574"
  45. width="765"/>
  46. <img class="lazy" data-original="https://tools.afengim.com/demo/jquery-lazyload/images/14.webp" height="574"
  47. width="765"/>
  48. <img class="lazy" data-original="https://tools.afengim.com/demo/jquery-lazyload/images/15.webp" height="574"
  49. width="765"/>
  50. <img class="lazy" data-original="https://tools.afengim.com/demo/jquery-lazyload/images/16.webp" height="574"
  51. width="765"/>
  52. <img class="lazy" data-original="https://tools.afengim.com/demo/jquery-lazyload/images/17.webp" height="574"
  53. width="765"/>
  54. <img class="lazy" data-original="https://tools.afengim.com/demo/jquery-lazyload/images/18.webp" height="574"
  55. width="765"/>
  56. <script type="text/javascript">
  57. $(function () {
  58. $("img.lazy").lazyload({
  59. effect: "fadeIn",
  60. });
  61. });
  62. </script>
  63. </body>
  64. </html>

打开网页后只加载当前屏幕内的图片,只有滚动或下拉浏览器才会加载底部的图片

2.初始化属性

使用jquery lazyload需要进行初始化才能生效延迟加载效果。

初始化代码:

  1. <script type="text/javascript">
  2. $(function () {
  3. $("img.lazy").lazyload({
  4. effect: "fadeIn",
  5. });
  6. });
  7. </script>

可以通过不定义​​.lazy样式​​实现不带​​class="lazy"​​即可初始化,会对该页面的全部img标签生效

全局初始化代码如下:

$("img").lazyload({effect: "fadeIn"});

可以在初始化代码​​$("img.lazy").lazyload({​​后添加属性,以实现更多效果,每个属性以,结尾

需要为img标签添加lazy样式(lazy可以在初始化定义值),如:​​$("img.afengblog").lazyload​

示例:​​<img class="afengblog" data-original="test.png"/>​

图片路径引用方法默认使用​​data-original​​,也可以在初始化定义data-后的值。

如:​​data_attribute : "afengblog",​

示例:​​<img class="afengblog" data-afengblog="test.png"/>​

以下介绍基础的使用属性:

​threshold​属性可以提前加载图片,可以自定义高度,如:​200​,则提前200高度加载图片。

​effect​属性可以定义载入效果,一般为:​​fadeIn​​(渐入效果)。

​placeholder​​属性可以设置全局图像占位符,如:​​data:image/gif;base64,R0lGODdhAQABAPAAAMPDwwAAACwAAAAAAQABAAACAkQBADs=​​ 此处也可以设置http地址图片或者base64图片,实现替换默认的加载图片。

​effectspeed​​属性可以设置动画持续时长, 单位毫秒,如:​​1000​​(动画持续1000ms)

3.可用的初始化属性

  1. $('img.lazy').lazyload({
  2. // threshold: 提前开始加载高度.
  3. threshold: 200,
  4. // failure_limit: 同 failurelimit
  5. failure_limit: 10,
  6. // event: 设置何种事件触发时才加载, 默认 scroll
  7. event: 'click',
  8. // effect: 使用何种载入效果
  9. effect: "fadeIn",
  10. // container: 对某容器中的图片实现效果
  11. container: $("#container"),
  12. // data_attribute: 用于设置 lazyload 操作的自定义属性(data-后面的属性名)
  13. data_attribute : "attr",
  14. // skip_invisible: 是否 不加载不可见图片. true 不加载, false 加载.
  15. skip_invisible : false,
  16. // appear: 用于在图片加载之前到显示图片之间的处理函数,一般用于展示加载动画.
  17. appear: function() {},
  18. // load: 用于图片加载完毕之后执行的函数.
  19. load: function() {},
  20. // placeholder: 设置占位图片路径
  21. placeholder : "img/lazy.gif",
  22. // failurelimit: 一次加载图片的张数(图片排序混乱时使用)
  23. failurelimit : 10,
  24. // effectspeed: 设置动画持续时长, 单位毫秒
  25. effectspeed : 1000,
  26. });

各属性介绍

以下内容转自博文链接:https://blog.csdn.net/Leo_DLi/article/details/112315506

​1, threshold: 默认值 0​

threshold: 值为数字, 用于设置提前开始加载高度. 如设置为200, 表示滚动条在离目标位置还有 200 的高度时就开始加载图片, 可以做到不让用户察觉。
​2, failure_limit : 默认值 0​​failure_limit: 值为数字, 同 failurelimit(下文介绍)

​3, event: 默认值 "scroll"​​event: 用于设置触发加载的时机. 值有scroll(滚动), click(点击), mouseover(鼠标划过), sporty(运动的), foobar(…).可以实现鼠标莫过或点击图片才开始加载,后两个值未测试…

​4, effect: 默认值 "show"​

effect: 用于设置显示图片是的动画效果. 值有: show(直接显示), fadeIn(淡入), slideDown(下拉)等

​5, container: 默认值 window​​container: 值为某容器, 用于设置对某容器中的图片实现效果. lazyload默认在拉动浏览器滚动条时生效, 这个参数可以让你在拉动某DIV的滚动条时依次加载其中的图片

​6, data_attribute: 默认值 "original"​​data_attribute: 用于设置 lazyload 操作的自定义属性(data-后面的属性名)

​7, skip_invisible: 默认值 true​​skip_invisible: 设置是否加载不可见的图片.

Lazy Load 插件默认对隐藏的图片不加载(例如 display:none ). 这样做有助于性能的优化. 如果希望连隐藏的图片一起加载,则可以把 skip_invisible 设为 false .

​8, appear: 默认值 null​​appear: 用于在图片加载之前到显示图片之间的处理函数,一般用于展示加载动画.

​9, load: 默认值 null​​load: 用于图片加载完毕之后执行的函数.

​10, placeholder: 默认值 "data:image/png;base64,iV......"​​placeholder: 用于设置占位图片.

值为某一图片路径. 此图片用来占据将要加载的图片的位置, 待图片加载时, 占位图则会隐藏

 

接下来的两个是兼容低版本的属性, 在该版本中正常使用.

​11, effectspeed : 毫秒数​​effectspeed: 用于控制动画的速度.

属性默认是空的, 所以如果不设置它, 动画的时间为400毫秒.

​12, failurelimit: 值为数字. 在图片布局混乱时使用.​​Lazy Load 有一个循环查找 img 的机制. 根据 HTML 文档的布局从上往下查找, 当找到第一个并未显示/加载的 img 时, 就会停止往下查找.(其实就是对 $("img.lazy") 这个对象(组)进行顺序查找)。

Demo地址:​https://tools.afengim.com/demo/jquery-lazyload/​

原文地址:​https://www.afengblog.com/jquery-lazyload.html​

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

闽ICP备14008679号