沉浸式阅读
Beta
原创

图片懒加载lazyload.js详解

     订阅 PC端模板制作     2022-09-03     259    0    1    1    2022-09-03
学习要点:lazyload.js用于长页面图片的延迟加载,视口外的图片会在窗口滚动到它的位置时再进行加载,这是与预加载相反的

简介

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


优点

它可以提高页面加载速度;

在某些情况清晰它也可以帮助减少服务器负载。

HTML引入

<script src="jquery.js"></script>
<script src="jquery.lazyload.js"></script>


1.将图片路径写入data-original属性

2.给lazyload的图片增加一个名为lazy的class

3.选择所有要lazyload的图片(img.lazy),执行lazyload();

<img class="lazy" data-original="img/example.jpg" style="margin-top:1000px" height="200">
<script>
    $(function(){
        $("img.lazy").lazyload();
    })
</script>


在destoon程序中 请使用

<img src="https://www.mbkfw.com/static/image/lazy.gif" class="lazy" original=""img/example.jpg"" style="margin-top:1000px" height="200">
<script>
    $(function(){
        $("img").lazyload({});
    })
</script>


注意:必须设置图片的高度或者宽度,否则插件可能无法正常工作


提前加载——Threshold

lazyload默认是当滚动到该图片位置时,加载该图片。但是可以通过设置Threshold参数来实现滚到距离其xx px时就加载。

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


在destoon程序中 请使用

$(function(){
    $("img").lazyload({
        threshold :20
    });
})


上面的例子设置了滚动到距离图片20px时,图片就开始再开始加载


事件触发(可以是jquery事件,也可以是自定义事件)——Event

当触发定义的事件时,图片才开始加载

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


在destoon程序中 请使用

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

上面的例子使图片点击后,才开始加载


Tip:你可以使用这个来实现图片的延迟加载

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

$(window).bind("load", function() {
    var timeout = setTimeout(function() {
        $("img.lazy").trigger("sporty")
    }, 5000);
});


在destoon程序中 请使用

$(function() {
    $("img").lazyload({
        event : "sporty"
    });
});

$(window).bind("load", function() {
    var timeout = setTimeout(function() {
        $("img").trigger("sporty")
    }, 5000);
});



上面的代码在页面加载完毕后五秒才开始加载图片


设定效果——Effects

插件默认的加载效果是 show() ,你可以使用任何你想要的效果。下面的代码使用了 fadeIn()

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


在destoon程序中 请使用

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


滚动容器内的图片——container

插件也可以使用在滚动容器内的图片上。下面的div拥有scrollerbar,内容的内容进行滚动,滚到图片位置时,图片开始加载

<div style="height:600px;overflow:scroll" id="container">
    <img class="lazy" data-original="img/example.jpg"  alt="" style="margin-top:1000px" height="200">
</div>
<script>
    $(function(){
        $("img.lazy").lazyload({
            container: $("#container")
        });
    })
</script>


在destoon程序中 请使用

<div style="height:600px;overflow:scroll" id="container">
    <img  src="https://www.mbkfw.com/static/image/lazy.gif" class="lazy" original=""img/example.jpg""  alt="" style="margin-top:1000px" height="200">
</div>
<script>
    $(function(){
        $("img").lazyload({});
    })
</script>


不顺序排列的图片

插件会执行一个寻找未加载图片的循坏,该循环会检查图片是否可见,默认情况下,当第一个视图外的图片被找到,循环就会停止 。

但是存在一种情况:页面布局图片的顺序和html图片代码的顺序不一致;它会导致本该加载的没有加载。这种情况下就可以将 failurelimit 设为 10 ,它令插件找到 10 个不在可见区域的图片是才停止搜索. 如果你有一个恶心的布局, 请把这个参数设高一点。

代码:

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


在destoon程序中 请使用

$("img").lazyload({
    failurelimit : 10
});


处理隐藏图片——skip_invisible

为了提升性能,插件默认忽略隐藏的图片;如果想要加载隐藏图片.设置skip_invisible为false;


注意:Webkit浏览器将自动把没有宽度和高度的图像视为不可见

$("img.lazy").lazyload({
    skip_invisible : true
});


在destoon程序中 请使用

$("img").lazyload({
    skip_invisible : true
});


本文标题: 图片懒加载lazyload.js详解

本文链接: https://www.mbkfw.com/course/1125.html (转载时请注明来源链接)

本文说明: 有问题或投稿请发送至: 邮箱/kf@dtmuban.com    QQ/290948585

特别鸣谢: 如果您觉得本文对您有帮助,请给我们一个小小的赞,收藏本文更利于反复学习哦!

 
本文标签: #懒加载
destoon程序前端开发标签生成器

下班PC阅读不方便?

手机也可以随时学习开发

微信关注公众号“商企云服”
"模板开发网前端开发教学"
每日干货技术分享
 
0

圈友点评

文明上网理性发言,请遵守网络评论服务协议

小编推荐



色彩
×

《客户实名在线注册登记》售后一直都在!

关注

微信
关注

微信扫一扫
不同的环境体验

幸运大转盘,好礼等您拿

模板开发网公众号

模板开发网微信小程序

代授权

程序
授权

黑小二

联系
客服

很高兴为您服务
尊敬的用户,欢迎您咨询,我们为新用户准备了优惠好礼。咨询客服

联系客服:

在线QQ: 290948585

客服电话: 18605917465

E_mail邮箱: kf@dtmuban.com

微信公众号: 商企云服

微信小程序: 模板开发

QQ客服 微信客服DT授权代办 在线交谈 智能小云

工作时间:

周一至周五: 09:00 - 18:00

APP下载

安卓
APK

模板开发网安卓版APP

反馈

我要
反馈