深入研究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 ajaxupload插件实现无刷新上传文件
Apr 23 jQuery
jQuery 表单序列化实例代码
Jun 11 jQuery
利用jquery去掉时光轴头尾部线条的方法实例
Jun 16 jQuery
jquery拖动改变div大小
Jul 04 jQuery
jQuery Layer弹出层传值到父页面的实现代码
Aug 17 jQuery
jquery 实现拖动文件上传加载进度条功能
Mar 18 jQuery
jQuery 同时获取多个标签的指定内容并储存为数组
Nov 20 jQuery
jquery 验证用户名是否重复代码实例
May 14 jQuery
jquery实现动态创建form并提交的方法示例
May 27 jQuery
jQuery实现文本显示一段时间后隐藏的方法分析
Jun 20 jQuery
jQuery实现轮播图效果demo
Jan 11 jQuery
jQuery实现鼠标拖拽登录框移动效果
Sep 13 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
PHP源码分析之变量的存储过程分解
2014/07/03 PHP
CI框架Session.php源码分析
2014/11/03 PHP
php基于openssl的rsa加密解密示例
2016/07/11 PHP
js no-repeat写法 背景不重复
2009/03/18 Javascript
一个选择最快的服务器转向代码
2009/04/27 Javascript
JS 字符串连接[性能比较]
2009/05/10 Javascript
jQuery 表单验证插件formValidation实现个性化错误提示
2009/06/23 Javascript
JavaScript 高级篇之DOM文档,简单封装及调用、动态添加、删除样式(六)
2012/04/07 Javascript
提高NodeJS中SSL服务的性能
2014/07/15 NodeJs
Javascript MVC框架Backbone.js详解
2014/09/18 Javascript
JavaScript实现向右伸出的多级网页菜单效果
2015/08/25 Javascript
全面解析标签页的切换方式
2016/08/21 Javascript
JS中setTimeout和setInterval的最大延时值详解
2017/02/13 Javascript
vue对storejs获取的数据进行处理时遇到的几种问题小结
2018/03/20 Javascript
基于node搭建服务器,写接口,调接口,跨域的实例
2018/05/13 Javascript
使用puppeteer爬取网站并抓出404无效链接
2018/12/20 Javascript
微信公众号服务器验证Token步骤图解
2019/12/30 Javascript
[58:25]VP vs RNG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Python的__builtin__模块中的一些要点知识
2015/05/02 Python
python抓取网页中图片并保存到本地
2015/12/01 Python
在PyCharm下使用 ipython 交互式编程的方法
2019/01/17 Python
python基于itchat模块实现微信防撤回
2019/04/29 Python
python celery分布式任务队列的使用详解
2019/07/08 Python
django基于存储在前端的token用户认证解析
2019/08/06 Python
使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件及出现问题解决方法
2019/09/06 Python
美国知名的百货清仓店:Neiman Marcus Last Call
2016/08/03 全球购物
Sunglasses Shop丹麦:欧洲第一的太阳镜在线销售网站
2017/10/22 全球购物
英国HYPE双肩包官网:英国本土时尚潮牌
2018/09/26 全球购物
傲盾软件面试题
2015/08/17 面试题
好矿嫂事迹材料
2014/01/21 职场文书
学员自我鉴定
2014/03/19 职场文书
学校安全责任书范本
2014/07/23 职场文书
职业道德模范事迹材料
2014/08/24 职场文书
介绍信范文
2015/01/31 职场文书
本科毕业论文致谢怎么写
2015/05/14 职场文书
python实现简易名片管理系统
2021/04/11 Python