关于Lazyload加载图片几种方法的介绍

2023-11-17

Lazyload长页面图片的延迟加载:

一,jquery.lazyload.js

 注意事项:jquery.js务必先引进,然后才加载lazyload;img长宽一定要有,每幅长宽可以不一致;在js段,可以不用$(window).ready来加载事件;

1.将图片路径写入data-original属性
2.给lazyload的图片增加一个名为lazy的class
3.选择所有要lazyload的图片(img.lazy),执行lazyload();

下面举例说明:

//注意js引入的先后顺序
<script src="jquery.js"></script> <script src="jquery.lazyload.js"></script>
<img class="lazy" data-original="img/example.jpg" width="1330" height="900">
<img class="lazy" data-original="img/example.jpg" width="400"height="200"> //可以尺寸不一致
...//无数张你想要加载的照片
<script>
//开始全局加载
$(function(){
$("img.lazy").lazyload();
})
</script>

 

比较常用的方法

提前加载——Threshold

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

 

//自行就加载了 
$(function(){ $("img.lazy").lazyload({ threshold :20 }); })

 

  或

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

 

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

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

 

  //使图片点击后,才开始加载
$(function(){ $("img.lazy").lazyload({ event : "click" }); })

 

同时也可以

//自定义延迟多长时间再触发加载图片。这个类似EasyLazyload.js插件,下面会介绍到
$(function() {
    $("img.lazy").lazyload({
        event : "sporty"
    });
});

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

设定效果——Effects

 

//插件默认的加载效果是 show() ,你可以使用任何你想要的效果。比如fadeIn()淡入效果
$("img.lazy").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"> <img class="lazy".../> </div> <script> $(function(){ $("img.lazy").lazyload({
effect:"fadeIn",//顺便添加个效果 container: $("#container") }); }) </script>

 

  

 

二,EasyLazyload.js

比较全能的延迟加载,不会对样式有影响,最主要可以不用特意去设定图片的width和height(毕竟图片不一致的宽高大有人需要,难不成还真的一个一个去设定?)而且scroll到照片时,有缓冲视觉效果

<!--先引入Easylazyload.js-->
<script src="jquery.min.js"></script>
<script src="EasyLazyload.min.js" >

<div id="container" style=" overflow:scroll; background-color:black;">
<!--把你想要的图片来源src换成data-lazy-src-->
<img  data-lazy-src="img/1.png">
<img data-lazy-src="img/2.png">
<img  data-lazy-src="img/3.png" >
<img  data-lazy-src="img/4.png" >
<img  data-lazy-src="img/5.png" >
</div>

<script>
//调用全局方法lazyLoadInit()
lazyLoadInit({
	coverColor:"white",//图片即将显示时覆盖层的颜色;
        coverDiv:"<h1>test</h1>",//覆盖层可显示的土自定义组件
        offsetBottom:0,//图片距离屏幕底部出现时间点的距离差值(注解:延迟加载图片会在图片顶部接触屏幕底部时出现,如果想要让图片顶部距离屏幕底部有一定距离时出现,请设置此值)
        offsetTopm:0,//图片距离屏幕底部出现时间点的距离差值(注解:同上,距离顶部)
        showTime:1100,
        onLoadBackEnd:function(i,e){
            console.log("onLoadBackEnd:"+i);
        }//图片已经完全出现时的回调函数,参数为(index,event)加载的图片下标,以及dom对象(dom对象为jquerydom或zeptodom对象)
        ,onLoadBackStart:function(i,e){
            console.log("onLoadBackStart:"+i);
        }//图片已经下载完成,即将开始显示时的回调函数(参数同上)
    });


</script>

关于Easylazyload.js的几个问题

如果是从服务器上请求一系列图片,lazyLoadInit()应该放在哪里触发?在ajax调用成功后 img的src替换完成后 调用 lazyLoadInit lazyLoadInit()方法,ajax给img赋值data-lazy-src属性,然后在ajax success 中调用Init方法,不然初始化的时候img的src属性还是空的;

用瀑布流ajax动态加载的图片没有效果,在ajax里的complete方法中调用lazyLoadInit()试试

 

三,自己用js编写不依赖jquery 

当然很多大神考虑到页面性能的分析和处理力度做到最大化,以及用户滚动到页面底部之前而懒加载的无智能精准提前加载。比如我读到的设计无限滚动下拉加载,实践高性能页面真谛 非常值得一看和学习。

 

转载于:https://www.cnblogs.com/wold/p/7718610.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于Lazyload加载图片几种方法的介绍 的相关文章

随机推荐

  • C++学习教程大纲

    以下是C 学习教程的大纲 第一部分 基础知识 C 简介 什么是C C 的历史 C 的特点和优势 开发环境的搭建 安装C 编译器 配置开发环境 第一个C 程序 Hello World程序 程序的结构 编译和运行程序 数据类型和变量 基本数据类
  • jQuery的三种$()

    号是jQuery 类 的一个别称 构造了一个jQuery对象 所以 可以叫做jQuery的构造函数 个人观点 呵呵 1 可以是 expresion 即css选择器 Xpath或html元素 也就是通过上述表达式来匹配目标元素 比如 a 构造
  • 应急响应篇:windows入侵排查

    前言 应急响应 Incident Response Service IRS 是当企业系统遭受病毒传播 网络攻击 黑客入侵等安全事件导致信息业务中断 系统宕机 网络瘫痪 数据丢失 企业声誉受损 并对组织和业务运行产生直接或间接的负面影响时 急
  • 《码上行动:零基础学会Python编程》书籍分享

    Python是一种高级的 面向对象的编程语言 由Guido van Rossum于1991年开发 它具有简洁 易读和可维护的语法 被广泛用于科学计算 Web开发 数据分析 人工智能等领域 以下是Python的一些特点和优势 简洁易读 Pyt
  • 还对Flutter理解不透?看完这些迟早成为大佬~

    Flutter是什么 Flutter简介 Flutter是谷歌的移动UI框架 可以快速在iOS和Android上构建高质量的原生用户界面 一份代码可以同时生成iOS和Android两个高性能 高保真的应用程序 Flutter目标是使开发人员
  • 2023年最火副业:Python爬虫兼职,一周赚7800元,一天只要两小时 !

    现在学习python的人越来越多了 跟大家简单如何利用python搞副业赚钱的 想要利用 Python 赚钱的方式还是比较多的 其中接单和投稿算是两种比较简单的方式了 如果你是业余学python爬虫 可以去淘宝上加了找了几个店铺直接问需要爬
  • 数据结构和算法(4):栈与队列

    栈 ADT 及实现 栈 stack 是存放数据对象的一种特殊容器 其中的数据元素按线性的逻辑次序排列 故也可定义首 末元素 尽管栈结构也支持对象的插入和删除操作 但其操作的范围仅限于栈的某一特定端 也就是说 若约定新的元素只能从某一端插入其
  • 文本域左边的文字处理

    文本域左边文字默认是bottom 如果想要左边文字与文本域顶部平齐 那么只需要设置label的vertical align的属性值为top即可 设置前 设置后
  • 代码分析(一)

    2021SC SDUSC 分析前言 对于APIJSON的代码分析首先就是 看一下该项目的作用以及如何进行 看一下原来不部署这个项目的正常流程 再来看一下部署上APIJSON后项目的流程走向 接下来开始按照这个流程对相应的代码进行分析 Abs
  • windows xcopy 复制文件夹命令 覆盖 或 跳过

    xcopy 拓展的复制命令 复制目录和下面的文件 保持目录结构 不能复制系统文件 隐藏文件 xcopy 源路径 目标路径 常用 复制并且覆盖 xcopy y srcPath dstPath 复制目录和目录下文件并且对目录下的子目录和子目录的
  • 一款好用的国产软件源代码缺陷分析平台 — CodeSense

    CodeSense是新一代的软件源代码缺陷深度分析平台 包含多个自研的代码分析引擎 同时提供开放的方案 支持多种商业 开源分析引擎集成并对结果进行集中展示 与目前市面的国外商业工具对比 在语言种类 功能 标准 缺陷分类数量上 已达到一致 额
  • 论文阅读-Training a Helpful and Harmless Assistant withReinforcement Learning from Human Feedback

    一 论文信息 论文名称 Training a Helpful and Harmless Assistant withReinforcement Learning from Human Feedback Github GitHub anthr
  • JavaWeb - 仿小米商场(4):首页商品分类展示

    JavaWeb 仿小米商场 4 首页线路分类展示 1 功能描述 接上篇JavaWeb 仿小米商场 3 登录与退出本篇博客将分析和实现旅游线路分类内容的查询和展示 此功能旨在控制 banner 顶部的展示内容 如以下H5页面所示 2 功能分析
  • Uniapp零基础开发学习笔记(9) -媒体组件音视频摄像头等的练习使用

    Uniapp零基础开发学习笔记 9 媒体组件音视频摄像头等的练习使用 基础组件部分 最后就只剩余媒体组件以及地图 和画布Canvas 以及浏览器组件web view 此次先看看媒体组件 重点学习前面几个 链接如下 https uniapp
  • 在Vue中当执行this.$emit() 时发生了什么?this.$emit() 的调用是异步的吗?

    当在Vue组件中调用this e m i t 时 实 际
  • 局域网设计

    一 局域网设计模型 1 局域网设计原则 考察物理链路 物理链路的带宽是网络设计的基础 分析数据流的特征 明确应用和数据流的分布特征 可以更加有效地进行资源分布 例如 企业邮件服务和工作组共享打印对于网络的需求是不一致的 采用层次化模型进行设
  • 【语义分割】【CVPR2022】BAM Note

    Topic 这是一篇CVPR 2022 Oral Paper 让我们继续体会小样本分割的魅力 Abstract 近年来 少镜头分割技术得到了广泛的发展 以往的工作大多试图通过分类任务的元学习框架来实现泛化 然而 训练的模型偏向于所见的类 而
  • Matlab相关性分析

    1 线性回归R方法 通过计算R方来看每个变量间的相关性 代码如下 X ones length X pre 1 X pre 注意 要计算具有常数项 截距 的模型的系数估计值 请在矩阵 X 中包含一个由 1 构成的列 b bint r rint
  • jwt超详细配置和教程

    一 什么是jwt jsontoken 在各方之间以json对象安全的传送信息 此信息可以验证和信任因为它是数字签名的 从分布式认证流程中 我们不难发现 这中间起最关键作用的就是 token token的安全与否 直接关系到系统的 健壮性 这
  • 关于Lazyload加载图片几种方法的介绍

    Lazyload长页面图片的延迟加载 一 jquery lazyload js 注意事项 jquery js务必先引进 然后才加载lazyload img长宽一定要有 每幅长宽可以不一致 在js段 可以不用 window ready来加载事