深入研究jQuery图片懒加载 lazyload.js使用方法


Posted in jQuery onAugust 16, 2017

lazyload是一个用Javascript编写的jQuery插件,它可以延迟加载长页面中的图片,在浏览器可视区域外的图片将不会被载入,直到用户将它们滚动到它们所在的位置。

跟bootstrap一样,lazyload.js也是依赖于jQuery

<script src="resources/js/jquery-1.8.3.min.js"></script>
<script src="resources/js/jquery.lazyload.min.js"></script>

与之前的图片引入路径不同,真实的图片路径不再是用src属性,而是data-original。src属性用于引入占位符图片(当然,个人更推荐占位符不写在img标签里)。同时,必须设置img的宽度和高度,给每一个懒加载的图片加一个class比如.lazy
四大属性必须同时具备:class   data-original   width  height

<img class="lazy" width="640" height="480" data-original="resources/images/2.jpg">

要想让所有class为lazy的图片懒加载,只需要简单的一行代码就可以

<script src="resources/js/jquery-1.8.3.min.js"></script>
<script src="resources/js/jquery.lazyload.min.js"></script>
<script>
 $('img.lazy').lazyload( );
</script>
</body>
</html>

设置临界点

默认情况下,图片会出现在显示区域时才加载,如果想提前加载图片,可以设置 threshold 选项,比如设置thredshold为200,令图片在距离显示区域200px时提前加载

$('img.lazy').lazyload({
 threshold:200,
});

设置占位符

前面提到过,可以用img标签的src属性引入一个图片,比如loading.gif,替代未进去显示区域的待加载图片,我们同样可以添加 placeholder 选项来实现

$('img.lazy').lazyload({
 placeholder:'resources/images/loading.gif'
});

设置事件来触发加载

可以用jQuery事件如click,mouseover,也可以用自定义事件,默认情况下,是要等到用户向下滚动并且图像出现在显示区域时才触发。比如:只有当用户点击的时候才加载图片

$('img.lazy').lazyload({
 event:'click'
});
深入研究jQuery图片懒加载 lazyload.js使用方法

使用特效

默认情况下,插件等待图像完全加载后调用show()方法来显示图片,我们也可以用一些特效比如:fadeIn

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

图片在容器里面

可用在容器可滚动的图片上,例如带滚动条的DIV元素,需要将容器定义为jQuery对象,并作为参数传到初始化方法里面,比如:垂直滚动

#container {
 height: 600px;
 overflow: scroll;
}

<img class="lazy" data-original="img/example.jpg" width="765" height="574">

$("img.lazy").lazyload({  
 effect : "fadeIn",
 container: $("#container")
});

当图片不顺序排列

滚动页面的时候, Lazy Load 会循环的加载图片. 在循环中检测图片是否在可视区域内. 默认情况下在找到第一张不在可见区域的图片时停止循环. 图片被认为是流式分布的, 图片在页面中的次序和 HTML 代码中次序相同. 但是在一些布局中, 这样的假设是不成立的. 不过你可以通过 failurelimit 选项来控制加载行为.

$("img.lazy").lazyload({ 
 failure_limit : 10
});

将 failurelimit 设为 10 令插件找到 10 个不在可见区域的图片是才停止搜索. 如果你有一个猥琐的布局, 请把这个参数设高一点.

加载隐藏图片

可能在你的页面上埋藏可很多隐藏的图片. 比如插件用在对列表的筛选, 你可以不断地修改列表中各条目的显示状态. 为了提升性能, Lazy Load 默认忽略了隐藏图片. 如果你想要加载隐藏图片, 请将 skip_invisible 设为 false

$("img.lazy").lazyload({ 
 skip_invisible : false
});

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助~如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持!

jQuery 相关文章推荐
jquery中$.fn和图片滚动效果实现的必备知识总结
Apr 21 jQuery
jQuery输入框密码的显示隐藏【代码分享】
Apr 29 jQuery
QRCode.js:基于JQuery的生成二维码JS库的使用
Jun 23 jQuery
jQuery访问浏览器本地存储cookie、localStorage和sessionStorage的基本用法
Oct 20 jQuery
jQuery实现切换隐藏与显示同时切换图标功能
Oct 29 jQuery
jquery.onoff实现简单的开关按钮功能(推荐)
May 24 jQuery
jQuery 实现批量提交表格多行数据的方法
Aug 09 jQuery
jQuery实现基本淡入淡出效果的方法详解
Sep 05 jQuery
jQuery+css last-child实现选择最后一个子元素操作示例
Dec 10 jQuery
jquery 验证用户名是否重复代码实例
May 14 jQuery
JS拖动选择table里的单元格完整实例【基于jQuery】
May 28 jQuery
jQuery实现的移动端图片缩放功能组件示例
May 01 jQuery
jQuery中each循环的跳出和结束实例
Aug 16 #jQuery
基于JQuery的Ajax方法使用详解
Aug 16 #jQuery
jquery获取链接地址和跳转详解(推荐)
Aug 15 #jQuery
全面解析jQuery中的$(window)与$(document)的用法区别
Aug 15 #jQuery
jQuery DOM节点的遍历方法小结
Aug 15 #jQuery
jQuery实现菜单栏导航效果
Aug 15 #jQuery
jQuery实现腾讯信用界面(自制刻度尺)样式
Aug 15 #jQuery
You might like
解析crontab php自动运行的方法
2013/06/24 PHP
PHP 字符串长度判断效率更高的方法
2014/03/02 PHP
PHP中spl_autoload_register()函数用法实例详解
2016/07/18 PHP
thinkPHP5.0框架自动加载机制分析
2017/03/18 PHP
javascript 随机展示头像实现代码
2011/12/06 Javascript
jQuery的:parent选择器定义和用法
2014/07/01 Javascript
js实现的捐赠管理完整实例
2015/01/20 Javascript
jQuery点缩略图弹出层显示大图片
2015/02/13 Javascript
js兼容火狐获取图片宽和高的方法
2015/05/21 Javascript
JS实现转动随机数抽奖特效代码
2020/04/16 Javascript
javascript如何实现暂停功能
2015/11/06 Javascript
TypeScript学习之强制类型的转换
2016/12/27 Javascript
基于jQuery实现弹幕APP
2017/02/10 Javascript
基于Vue生产环境部署详解
2017/09/15 Javascript
Vue中的作用域CSS和CSS模块的区别
2018/10/09 Javascript
Puppeteer 爬取动态生成的网页实战
2018/11/14 Javascript
150行Node.js实现的dns代理工具
2019/08/02 Javascript
微信小程序实现简单文字跑马灯
2020/05/26 Javascript
[01:10:58]Spirit vs NB Supermajor小组赛 A组败者组决赛 BO3 第二场 6.2
2018/06/03 DOTA
[49:05]OG vs Newbee 2019DOTA2国际邀请赛淘汰赛 胜者组 BO3 第二场 8.21.mp4
2020/07/19 DOTA
Python实现将HTML转换成doc格式文件的方法示例
2017/11/20 Python
python正则实现计算器功能
2017/12/14 Python
python写入并获取剪切板内容的实例
2018/05/31 Python
Python3 pip3 list 出现 DEPRECATION 警告的解决方法
2019/02/16 Python
解决Pytorch 训练与测试时爆显存(out of memory)的问题
2019/08/20 Python
100行Python代码实现每天不同时间段定时给女友发消息
2019/09/27 Python
Django中的AutoField字段使用
2020/05/18 Python
Django DRF APIView源码运行流程详解
2020/08/17 Python
GitHub上值得推荐的8个python 项目
2020/10/30 Python
西班牙床垫网上商店:Colchones.es
2018/05/06 全球购物
优秀党支部事迹材料
2014/01/14 职场文书
第二课堂活动总结
2014/05/07 职场文书
2015年财务人员工作总结
2015/04/10 职场文书
护理工作心得体会
2016/01/22 职场文书
如何理解PHP核心特性命名空间
2021/05/28 PHP
MySQL数据库之存储过程 procedure
2022/06/16 MySQL