jQuery图片预加载(延迟加载)插件Lazy Load

Lazy Load也叫惰性加载,延迟加载,顾名思义,就是在图片未到达可视区域时,不加载图片,我们常常在很多的优秀网站上看到类似的例子,例如迅雷、土豆、优酷等,由于一个网页的图片非常多,一次性加载增加服务器压力,而且用户未必会拉到底部,浪费用户流量,Lazy Load采用按需加载,更快的加载速度从而达到优化网页的目的。

如何使用

加载jQuery,并在HTML代码的底部包含进来

<script src="jquery.js" type="text/javascript"></script>
<script src="jquery.lazyload.js" type="text/javascript"></script>

设置图片的占位符为data-original,给图片一个特别的标签,图片设置起来像这样:

<img class="lazy" data-original="img/example.jpg" width="640" height="480">
$(function(){
    $("img.lazy").lazyload();
});

注意:你必须给图片设置一个height和width,或者在CSS中定义,否则可能会影响到图片的显示。

插件选项

图片预先加载距离:threshold,通过设置这个值,在图片未出现在可视区域的顶部距离这个值时加载。默认为0,下面为设置threshold为200表示在图片距离可视区域还有200像素时加载。

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

事件绑定加载的方式:event,你可以使用jQuery的事件,例如“click”、“mouseover”,或者你也可以自定义事件,默认等待用户滚动,图片出现在可视区域。下面是使用click:

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

显示效果:effect,默认使用show(),你可以使用fadeIn(逐渐出现)方式,代码如下:

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

对于禁用javascript的浏览器则要加上noscript内容:

<img class="lazy" data-original="img/example.jpg" width="640" heigh="480">
<noscript><img src="img/example.jpg" width="640" heigh="480"></noscript>

图片限定在某个容器内:container,你可以通过限定某个容器内容的图片才会生效,代码如下:

#container {
    height:600px;
    overflow: scroll;
}
$("img.lazy").lazyload({
     container: $("#container")
});

更多内容请参考官方文档 github项目主页

案例演示

基础选项 使用fadeIn效果 水平滚动


关注我

我的微信公众号:前端开发博客,在后台回复以下关键字可以获取资源。

  • 回复「小抄」,领取Vue、JavaScript 和 WebComponent 小抄 PDF
  • 回复「Vue脑图」获取 Vue 相关脑图
  • 回复「思维图」获取 JavaScript 相关思维图
  • 回复「简历」获取简历制作建议
  • 回复「简历模板」获取精选的简历模板
  • 回复「加群」进入500人前端精英群
  • 回复「电子书」下载我整理的大量前端资源,含面试、Vue实战项目、CSS和JavaScript电子书等。
  • 回复「知识点」下载高清JavaScript知识点图谱

每日分享有用的前端开发知识,加我微信:caibaojian89 交流