图片懒加载 lazyload.js使用方法

简介:

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


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

1
2
< 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

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


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

1
2
3
4
5
6
7
< 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时提前加载

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


设置占位符

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

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


设置事件来触发加载

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

1
2
3
$( 'img.lazy' ).lazyload({
     event: 'click'
});

wKiom1gQb2bCiPInAADu4vQaVz8328.png


使用特效

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

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


图片在容器里面

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

1
2
3
4
#container {
     height 600px ;
     overflow scroll ;
}
1
< img  class = "lazy"  data-original = "img/example.jpg"  width = "765"  height = "574" >
1
2
3
4
$( "img.lazy" ).lazyload({         
     effect :  "fadeIn" ,
     container: $( "#container" )
});


当图片不顺序排列

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

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

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


加载隐藏图片

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

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


更详细的学习页面,可参考:

http://www.w3cways.com/1765.html


相关插件下载链接:

https://github.com/tuupola/jquery_lazyload

本文转自   frwupeng517   51CTO博客,原文链接:http://blog.51cto.com/dapengtalk/1865965

相关文章
|
7月前
three.js的Gui面板使用方法
three.js的Gui面板使用方法
334 0
|
7月前
|
JavaScript 前端开发
Node.js中的EventEmitter模块:基本概念、使用方法和常见应用场景
Node.js中的EventEmitter模块:基本概念、使用方法和常见应用场景
136 0
|
JavaScript 前端开发 API
什么是懒加载,JS如何实现懒加载,在php中如何去实现懒加载
什么是懒加载,JS如何实现懒加载,在php中如何去实现懒加载
|
1月前
|
存储 JavaScript 前端开发
decimal.js库的安装和使用方法
【10月更文挑战第24天】decimal.js 是一个非常实用的高精度计算库,通过合理的安装和使用,可以在 JavaScript 中实现精确的数值计算和处理。你可以根据具体的需求和项目情况,灵活运用该库来解决数字精度丢失的问题。
|
2月前
|
缓存 JavaScript 前端开发
Node.js模块化的基本概念和分类及使用方法
Node.js模块化的基本概念和分类及使用方法
38 0
|
2月前
|
JavaScript 前端开发 容器
js之弹性布局使用方法
js之弹性布局使用方法
33 0
|
2月前
|
JavaScript 前端开发
JS懒加载
JS懒加载
28 0
|
4月前
|
JavaScript 前端开发
JavaScript 中 this 的使用方法详解
JavaScript 中 this 的使用方法详解
55 1
|
4月前
|
JavaScript 前端开发
js懒加载
js懒加载
12 0
|
4月前
|
JavaScript 前端开发