当前位置:首页 > jquery

jquery懒加载

2026-02-03 19:43:15jquery

jQuery懒加载的实现方法

懒加载(Lazy Load)是一种优化网页性能的技术,通过延迟加载非关键资源(如图片)来减少初始页面加载时间。以下是使用jQuery实现懒加载的几种方法:

使用jQuery Lazy插件

jQuery Lazy是一个轻量级插件,专门用于实现懒加载功能。

安装插件:

<script src="https://cdn.jsdelivr.net/npm/jquery-lazy@1.7.11/jquery.lazy.min.js"></script>

基本用法:

$("img.lazy").Lazy({
    effect: "fadeIn",
    effectTime: 1000,
    threshold: 0
});

HTML标记:

<img class="lazy" data-src="image.jpg" alt="Lazy loaded image">

自定义jQuery懒加载

如果不使用插件,可以通过监听滚动事件实现基本懒加载功能:

$(window).on("scroll", function() {
    $("img[data-src]").each(function() {
        if (isElementInViewport(this)) {
            $(this).attr("src", $(this).data("src")).removeAttr("data-src");
        }
    });
});

function isElementInViewport(el) {
    var rect = el.getBoundingClientRect();
    return (
        rect.top >= 0 &&
        rect.left >= 0 &&
        rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&
        rect.right <= (window.innerWidth || document.documentElement.clientWidth)
    );
}

使用Intersection Observer API

现代浏览器支持Intersection Observer API,性能比滚动事件监听更好:

if ("IntersectionObserver" in window) {
    const lazyImages = $("img[data-src]");
    const imageObserver = new IntersectionObserver(function(entries) {
        entries.forEach(function(entry) {
            if (entry.isIntersecting) {
                const img = entry.target;
                img.src = img.dataset.src;
                imageObserver.unobserve(img);
            }
        });
    });

    lazyImages.each(function() {
        imageObserver.observe(this);
    });
}

注意事项

  • 确保为懒加载图片设置占位尺寸,避免布局跳动
  • 考虑添加加载中的占位图或旋转动画
  • 移动端需要特别处理触摸事件
  • 对于SEO,可以考虑使用noscript标签提供后备方案

以上方法可以根据项目需求选择使用,插件方案更全面但会增加文件大小,自定义方案更灵活但需要更多调试。

jquery懒加载

标签: 加载jquery
分享给朋友:

相关文章

vue实现加载

vue实现加载

Vue 实现加载功能的方法 使用 v-if 或 v-show 控制加载状态 通过数据绑定控制加载动画的显示与隐藏。v-if 会完全移除 DOM 元素,v-show 只是切换 display 属性。…

jquery.js

jquery.js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,用于简化 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它的设计宗旨是“Write Less, Do Mor…

jquery 菜鸟

jquery 菜鸟

jQuery 入门指南 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。以下内容适合初学者快速上手。 引入 jQuery…

jquery文档

jquery文档

以下是关于 jQuery 文档的核心资源和使用方法整理: jQuery 官方文档 jQuery 官方文档是学习和使用 jQuery 最权威的资源,包含详细的 API 说明、示例和更新日志。…

vue2实现图片懒加载

vue2实现图片懒加载

实现图片懒加载的方法 在Vue2中实现图片懒加载可以通过以下方法完成,核心原理是监听图片是否进入可视区域,再动态加载图片资源。 使用IntersectionObserver API Interse…

jquery手册

jquery手册

jQuery手册概览 jQuery是一个快速、简洁的JavaScript库,简化了HTML文档遍历、事件处理、动画和Ajax交互。以下是核心功能和常用方法的分类整理。 核心方法 $(selector…