jQuery图片延迟加载插件lazyload.js

lazyload.js 是一款基于jQuery的图片延迟加载插件。lazyload.js用于长页面图片的延迟加载,视口外的图片会在窗口滚动到它的位置时再进行加载,这是与预加载相反的。

lazyload.js的特点

  • 它可以提高页面加载速度;
  • 在某些情况清晰它也可以帮助减少服务器负载。

lazyload.js 运行效果

jquery.lazyload.js 运行效果

lazyload.js 下载

实例下载地址:http://pan.baidu.com/s/1u9nf4

官方地址:http://appelsiini.net/projects/lazyload/

lazyload.js 使用教程

引用jquery和jquery.lazyload.js到你的页面。

1
2
< script src = "jquery-1.11.0.min.js" ></ script >
< script src = "jquery.lazyload.js?v=1.9.1" ></ script >

为图片加入样式lazy,图片路径引用方法用data-original

1
2
3
4
5
6
< img class = "lazy" data-original = "img/bmw_m1_hood.jpg" >
< img class = "lazy" data-original = "img/bmw_m1_side.jpg" >
< img class = "lazy" data-original = "img/viper_1.jpg" >
< img class = "lazy" data-original = "img/viper_corner.jpg" >
< img class = "lazy" data-original = "img/bmw_m3_gt.jpg" >
< img class = "lazy" data-original = "img/corvette_pitstop.jpg" >

js出始化lazyload并设置图片显示方式

1
2
3
4
5
< script type = "text/javascript" charset = "utf-8" >
   $(function() {
       $("img.lazy").lazyload({effect: "fadeIn"});
   });
</ script >

lazyload.js 参数设置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$( "img.lazy" ).lazyload({
   placeholder :  "img/grey.gif" //用图片提前占位
     // placeholder,值为某一图片路径.此图片用来占据将要加载的图片的位置,待图片加载时,占位图则会隐藏
   effect:  "fadeIn" // 载入使用何种效果
     // effect(特效),值有show(直接显示),fadeIn(淡入),slideDown(下拉)等,常用fadeIn
   threshold: 200,  // 提前开始加载
     // threshold,值为数字,代表页面高度.如设置为200,表示滚动条在离目标位置还有200的高度时就开始加载图片,可以做到不让用户察觉
   event:  'click' ,   // 事件触发时才加载
     // event,值有click(点击),mouseover(鼠标划过),sporty(运动的),foobar(…).可以实现鼠标莫过或点击图片才开始加载,后两个值未测试…
   container: $( "#container" ),   // 对某容器中的图片实现效果
     // container,值为某容器.lazyload默认在拉动浏览器滚动条时生效,这个参数可以让你在拉动某DIV的滚动条时依次加载其中的图片
   failurelimit : 10  // 图片排序混乱时
      // failurelimit,值为数字.lazyload默认在找到第一张不在可见区域里的图片时则不再继续加载,
      //但当HTML容器混乱的时候可能出现可见区域内图片并没加载出来的情况,failurelimit意在加载N张可见区域外的图片,以避免出现这个问题.
});

lazyload.js 自定义触发事件

默认的触发事件,是滚动,当你滚动的时候,就会检查然后加载。你可以使用event属性,设置你自己的加载事件,之后你可以自定义触发这个事件的条件,然后去加载图像。

1
$( "img.lazy" ).lazyload({ event :  "click" });

lazyload.js 自定义显示效果

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

默认的图片实现效果,就是没有效果,下载完成之后,直接显示出来。这样的用户体验并不好,你可以设置 effect 属性,来控制显示图片的效果。

fadeIn的效果就是,改变图片的透明度,渐现的方式出现。

lazyload.js 插件原理

修改目标 img 的 src 属性为 orginal 属性,从而中断图片的加载。检测滚动状态,然后把可视网页中的 img 的 src 属性还原加载图片,制造缓冲加载的效果。

但是现在,很多javascript大牛分析得出,这个插件其实并没有真正的缓加载效果。确实是这样,官方也已经给出了说明和解决方法了。

问题原因:在新版的浏览器中,即使你删除了 Javascript 控制的 src 属性,浏览器仍然会去加载这个图像。

解决方法:直接修改 HTML 的结构,在 img 标签中添加新的属性,把 src 属性的值指向占位图片,添加 data-original 属性,让其指向真正的图像地址。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值