当前位置:首页 > 技术 > 正文内容

基于 jQuery.lazyload 插件实现图片延迟加载

访客 技术 2026年11月4日 2

在高性能 Web 开发中,图片延迟加载(Lazy Loading)是优化页面加载速度、节省带宽资源的常用手段。jQuery.lazyload 是一款轻量级插件,能够延迟加载处于视口之外的图片,直到用户滚动到该图片所在位置。以下是该插件的详细配置与使用方法。

1. 引入必要依赖

首先,需要在 HTML 页面中引入 jQuery 库以及 jQuery.lazyload 插件脚本:

<script src="https://cdn.bootcdn.net/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="js/jquery.lazyload.min.js"></script>

2. 编写 HTML 结构

为了配合插件工作,图片标签不应直接将路径写入 src 属性,而是放入 data-original 属性中。建议通过类名(如 lazy-img)进行标识:

<!-- 基础用法 -->
<img class="lazy-img" data-original="assets/images/sample-01.jpg" width="600" height="400">
<img class="lazy-img" data-original="assets/images/sample-02.jpg" width="600" height="400">
<img class="lazy-img" data-original="assets/images/sample-03.jpg" width="600" height="400">

3. 初始化插件

在 DOM 加载完成后,通过 jQuery 选择器调用 lazyload() 方法即可激活功能。最基础的配置如下:

$(function() {
    $("img.lazy-img").lazyload({
        effect: "fadeIn" // 图片加载时使用淡入效果
    });
});

如果不希望通过类名筛选,也可以直接对全局 <img> 标签生效,但为了性能建议指定作用范围。

4. 进阶参数配置

jQuery.lazyload 提供了丰富的配置选项,用于满足不同的业务场景:

$("img.lazy-img").lazyload({
    // 设置占位图,在真实图片加载前显示
    placeholder: "assets/images/loading.gif",
    
    // 灵敏度设置:提前 200 像素触发加载,避免用户看到空白
    threshold: 200,
    
    // 触发事件:可以设置为 click 或 mouseover,默认是 scroll
    event: "scroll",
    
    // 载入动画效果,常用值包括 fadeIn, slideDown 或 show
    effect: "fadeIn",
    
    // 指定容器:如果图片在某个溢出隐藏的可滚动 DIV 中,需指定该容器
    container: $("#scroll-container"),
    
    // 容错处理:当页面布局复杂导致图片排序混乱时,增加此参数确保能搜索到更多图片
    failure_limit: 10
});

5. 核心参数详解

  • threshold:阈值。设置为 200 表示图片距离屏幕可视区域底部还有 200 像素时,就开始后台加载。
  • placeholder:在延迟加载期间展示的图片路径,通常使用一个小体积的 GIF 或灰色色块。
  • container:默认情况下插件监听浏览器窗口的滚动。如果你的图片嵌套在一个具有 overflow: auto 属性的容器内,必须将该容器传入此参数。
  • failure_limit:该插件默认在找到第一张不在可见区域的图片后停止循环。在某些使用了浮动或绝对定位的复杂布局中,图片顺序与 DOM 顺序不一致,调大此数值可以避免图片无法加载的问题。

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。