懒加载-图片延迟加载插件jQuery.lazyload

懒加载-图片延迟加载插件jQuery.lazyload

有时前端会有这样的需求,当网页有很多张图片的时候,我们不希望一次性就把图片加载完,而是希望
0
  • 详情内容
  • 留言点评

有时前端会有这样的需求,当网页有很多张图片的时候,我们不希望一次性就把图片加载完,而是希望当浏览器滑动到指定位置的时候再加载,这样可以节省带宽,它也能帮助减轻服务器负载。那么这种需求就需要利用lazyload了。

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>
<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">
<script>
  $(function() {
      $("img.lazy").lazyload({effect: "fadeIn"});
  });
</script>

与默认的img标签图片引入路径不同,真实的图片路径不再是用src属性,而是data-original。src属性用于引入占位符图片(建议占位符不写在img标签里)。同时,必须设置img的宽度和高度,给每一个懒加载的图片加一个class比如.lazy。

图片延迟加载插件jQuery.lazyload,通常被大家叫做懒加载或惰性加载技术。采用图片延迟加载可提高网页下载速度,在某些情况下,它也能帮助减轻服务器负载。

在图片中也可以不使用 class="lazy",初始化时使用:   

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

这样不特指就可以对全局的图片都有效。

如果想提前载入图片,可以使用 threshold 进行设置,

$("img.lazy").lazyload({ threshold :180});

以上设置的含义是:在图片距离屏幕180px时提前载入:

API参数设置

$("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张可见区域外的图片,以避免出现这个问题.
})

欢迎点评!也可以是问题反馈和建议

支持Ctrl+Enter提交
暂无留言,快抢沙发!
0

真心很赞,必须打赏!嗯,以资鼓励~

点此打赏

99%看过的人还会看