深入研究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中的deferred对象和extend方法详解
May 08 jQuery
jQueryUI Sortable 应用Demo(分享)
Sep 07 jQuery
jQuery EasyUI 折叠面板accordion的使用实例(分享)
Dec 25 jQuery
jquery 输入框查找关键字并提亮颜色的实例代码
Jan 23 jQuery
jQuery中的类名选择器(.class)用法简单示例
May 14 jQuery
layui中使用jquery控制radio选中事件的示例代码
Aug 15 jQuery
jQuery轮播图实例详解
Aug 15 jQuery
jQuery实现的页面弹幕效果【测试可用】
Aug 17 jQuery
jQuery UI实现动画效果代码分享
Aug 19 jQuery
使用jQuery动态设置单选框的选中效果
Dec 06 jQuery
详解如何使用webpack打包多页jquery项目
Feb 01 jQuery
jQuery加PHP实现图片上传并提交的示例代码
Jul 16 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
解析关于wamp启动是80端口被占用的问题
2013/06/21 PHP
Zend Framework页面缓存实例
2014/06/25 PHP
php+html5+ajax实现上传图片的方法
2016/05/14 PHP
ECSHOP完美解决Deprecated: preg_replace()报错的问题
2016/05/17 PHP
Zend Framework前端控制器用法示例
2016/12/11 PHP
PHP用户管理中常用接口调用实例及解析(含源码)
2017/03/09 PHP
PHP连接SQL Server的方法分析【基于thinkPHP5.1框架】
2019/05/06 PHP
php实现的数组转xml案例分析
2019/09/28 PHP
JavaScript 学习 - 提高篇
2007/02/02 Javascript
jQuery动态添加的元素绑定事件处理函数代码
2011/08/02 Javascript
基于jQuery的input输入框下拉提示层(自动邮箱后缀名)
2012/06/14 Javascript
JS上传图片前的限制包括(jpg jpg gif及大小高宽)等
2012/12/19 Javascript
js的2种继承方式详解
2014/03/04 Javascript
javascript页面上使用动态时间具体实现
2014/03/18 Javascript
jquery不常用方法汇总
2015/07/26 Javascript
Jquery Easyui菜单组件Menu使用详解(15)
2016/12/18 Javascript
老生常谈combobox和combotree模糊查询
2017/04/17 Javascript
浅谈Vue.js中的v-on(事件处理)
2017/09/05 Javascript
在vue中添加Echarts图表的基本使用教程
2017/11/22 Javascript
微信小程序日历/日期选择插件使用方法详解
2018/12/28 Javascript
vue 父组件给子组件传值子组件给父组件传值的实例代码
2019/04/15 Javascript
为python设置socket代理的方法
2015/01/14 Python
Python实现正弦信号的时域波形和频谱图示例【基于matplotlib】
2018/05/04 Python
Pytorch中accuracy和loss的计算知识点总结
2019/09/10 Python
在flask中使用python-dotenv+flask-cli自定义命令(推荐)
2020/01/05 Python
Python生成随机验证码代码实例解析
2020/06/09 Python
Python实现扫码工具的示例代码
2020/10/09 Python
python实现不同数据库间数据同步功能
2021/02/25 Python
CSS3打造百度贴吧的3D翻牌效果示例
2017/01/04 HTML / CSS
澳大利亚玩具剧场:Toy Playhouse
2019/03/03 全球购物
兰蔻英国官网:Lancome英国
2019/04/30 全球购物
高校毕业生自我鉴定
2013/10/27 职场文书
大四学生毕业自荐信
2013/11/07 职场文书
交通事故检查书范文
2014/01/30 职场文书
护理专科毕业生自荐书范文
2014/02/19 职场文书
《木笛》教学反思
2014/03/01 职场文书