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

 更新时间:2017年08月16日 08:54:28   作者:frwupeng517  
这篇文章主要介绍了jQuery图片懒加载 lazyload.js使用方法,通过设置临界点,占位符,设置事件来触发加载等等来讲解lazyload.js的使用,具体操作步骤大家可查看下文的详细讲解,感兴趣的小伙伴们可以参考一下。

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'
});

使用特效

默认情况下,插件等待图像完全加载后调用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 使用手册(六)

    jQuery 使用手册,大家可以耐心的看完,就基本上入门了。
    2009-09-09
  • JQuery为页面Dom元素绑定事件及解除绑定方法

    JQuery为页面Dom元素绑定事件及解除绑定方法

    这篇文章主要介绍了JQuery为页面Dom元素绑定事件及解除绑定方法,需要的朋友可以参考下
    2014-04-04
  • 详解layui弹窗父子窗口之间传参数的方法

    详解layui弹窗父子窗口之间传参数的方法

    本篇文章主要介绍了ayui弹窗父子窗口之间传参数的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • jQuery实现监听下拉框选中内容发生改变操作示例

    jQuery实现监听下拉框选中内容发生改变操作示例

    这篇文章主要介绍了jQuery实现监听下拉框选中内容发生改变操作,结合实例形式分析了jQuery针对select选中触发change事件相关操作技巧,需要的朋友可以参考下
    2018-07-07
  • 使用jQuery判断IE浏览器版本的代码

    使用jQuery判断IE浏览器版本的代码

    IE还真是让设计师恨的牙痒痒的东西,且现在已经有IE6、IE7、IE8、IE9、IE10这个五种不同版本的浏览器,且都有一点小差异。但是没办法,为了让网页在每个浏览器中显示都一样还必须迁就它
    2014-06-06
  • jQuery ready函数滥用分析

    jQuery ready函数滥用分析

    jQuery的ready函数为我们编写打开页面时运行的脚本提供了方便,让我们不必再关注什么window.onLoad之类的事件,但是最近发现自己之前写的代码有点滥用这个函数了。
    2011-02-02
  • jquery UI Datepicker时间控件冲突问题解决

    jquery UI Datepicker时间控件冲突问题解决

    这篇文章主要介绍了jquery UI Datepicker时间控件冲突问题的解决,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • jQuery知识点整理

    jQuery知识点整理

    这篇文章主要介绍了jQuery知识点整理的相关资料,需要的朋友可以参考下
    2015-01-01
  • jQuery拖拽插件gridster使用指南

    jQuery拖拽插件gridster使用指南

    gridster.js是一款基于jquery的前端拖拽插件,效果相当的不错,大家可以先看看Demo(http://gridster.net/#intro)(蓝色部分的白块就是了,可以随便拖动,娱乐性很强)。
    2015-04-04
  • jQuery实现搜索页面关键字的功能

    jQuery实现搜索页面关键字的功能

    这篇文章主要为大家详细介绍了jQuery实现搜索页面关键字的功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02

最新评论