赞
踩
古之立大事者,不惟有超世之才,亦必有坚忍不拔之志——苏轼
lazyload.js 是一个基于 JQuery 的插件,可以用来缓冲加载图片。为什么要缓冲加载图片呢?
如果一个网页很长并且有很多图片的话,下载图片就需要很多时间,那么就会影响整个网页的加载速度,而这款延迟加载插件,会通过你的滚动情况来加载你需要看的图片,然后它才会从后台请求下载图片,最后显示出来。通过这个插件,可以在需要显示图片的时候,才下载图片,从而可以减少服务器的压力,提高页面加载速度。
lazyload 插件的优点:
lazyload 插件的实现原理:修改目标 <img>
的 src
属性为 orginal
属性,从而中断图片的加载,然后检测滚动条的位置,如果当前页面已经显示,再将<img>
的 src
属性还原加载图片,制造缓冲加载的效果。
lazyload 插件的使用是依赖于 jQuery 的,所以必须按照顺序进行引入:
示例代码如下所示:
<!-- 1. 引入 jQuery 文件 -->
<script src="./library/jQuery 1.12.4.js"></script>
<!-- 引入 lazyload 插件 -->
<script src="./library/tuupola-jquery_lazyload/jquery.lazyload.js"></script>
<img>
元素通过 data-original
属性设置图片的真实路径,原 src
属性的值指向占位图片,并为 <img>
添加 class 属性值为 lazyload
方便 JavaScript 定位操作
示例代码如下所示;
<img class="lazyload" data-original="./imgs/1.png" src="./imgs/timg.png">
获取所有需要 lazyload 插件懒加载的图片元素,调用 lazyload()
核心方法:
$('.lazyload').lazyload();
lazyload 插件的核心方法 lazyload()
方法,该方法具有 options
参数,具体说明如下表所示
属性名称 | 默认值 | 描述 | 备注 |
---|---|---|---|
threshold | 0 | 临界点 | 设置大于零的数值,让图片距离屏幕一 定像素时提前加载 |
failure_limit | 0 | 当图片不连续时 | 滚动页面的时候, lazyload 会循环需要加载的图片。在循环中检测图片是否在可视区域内。 默认情况下载找到第一张不在可见区域的图片会停止循环。图片被默认是流式布局。 |
container | window | 触发可滚动的容器 | 默认是浏览器的滚动条。 允许自定义带滚动条的元素 |
event | scroll | 设置事件来触发加载 | click 、mouseover 等,可以自定义事件 |
effect | show | 载入特效 | 备选值为 show 、 fadeln |
ship_invisible | true | 加载隐藏的图片 | 默认忽略隐藏图片,设置为 false 表示加载隐藏图片 |
placeholder | 默认的占位图片 | 可以直接把占位的图片路径赋给<img> 的 src 属性 |
示例代码如下所示
<!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>
效果图如下所示
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。