jQuery.lazyload

GitHub 项目地址1 GitHub 项目地址2 官方网址

描述

图片延迟加载插件 jQuery.lazyload,使用延迟加载可提高网页下载速度。在某些情况下,它也能帮助减轻服务器负载。

引用

// 地址1 正宗官方
<script src="https://cdn.jsdelivr.net/npm/jquery-lazyload@1.9.7/jquery.lazyload.min.js"></script>
<script src="https://cdn.jsdelivr.net/gh/tuupola/lazyload@master/jquery.lazyload.min.js"></script>
// 地址2

<script src="https://cdn.jsdelivr.net/gh/jieyou/lazyload@master/lazyload.min.js"></script>

用法

HTML

<img class="lazy" data-original="img/bmw_m1_hood.jpg">

JavaScript

<script type="text/javascript">
$(function() {
    $("img.lazy").lazyload({effect: "fadeIn"});
});
</script>

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

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

这样就可以对全局的图片都有效!

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

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

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

其它参数设置

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

BUG 问题

注意:左边的图加载了,右边的图却没有,左边的图下面还有很多图

因为左边的图还没处理完,导致右边的图不会被处理,当左边的图下拉处理完了之后,右边的图才会显示。图片处理顺序应该是按照图片标签在HTML中的排列顺序。

解决办法:设置不同的选择器对象,使用 lazyload 函数

赞(0) 打赏
取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

    暂无评论...