当前位置:首页 > jquery

jquery 懒加载

2026-02-03 17:52:42jquery

jQuery 懒加载的实现方法

懒加载(Lazy Load)是一种优化网页性能的技术,延迟加载非关键资源(如图片),直到用户滚动到它们附近时才加载。以下是几种常见的实现方法:

使用 jQuery Lazy 插件

jQuery Lazy 是一个轻量级的懒加载插件,支持图片、iframe 和其他内容。

安装插件:

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

基本用法:

jquery 懒加载

$("img.lazy").lazy({
    effect: "fadeIn",
    effectTime: 1000,
    threshold: 200 // 提前 200px 加载
});

HTML 结构:

<img class="lazy" data-src="path/to/image.jpg" alt="Lazy Loaded Image">

自定义 jQuery 懒加载

如果不想依赖插件,可以通过监听滚动事件实现懒加载。

核心代码:

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 <= (window.innerHeight || document.documentElement.clientHeight) &&
        rect.bottom >= 0
    );
}

HTML 结构:

<img data-src="path/to/image.jpg" alt="Lazy Loaded Image">

使用 Intersection Observer API

现代浏览器支持 Intersection Observer API,性能更好。

代码示例:

if ("IntersectionObserver" in window) {
    const observer = new IntersectionObserver(function(entries) {
        entries.forEach(function(entry) {
            if (entry.isIntersecting) {
                const img = entry.target;
                img.src = img.dataset.src;
                observer.unobserve(img);
            }
        });
    });

    $("img[data-src]").each(function() {
        observer.observe(this);
    });
}

注意事项

  • 为懒加载图片设置占位高度,避免页面抖动。
  • 兼容性考虑:Intersection Observer 不支持旧浏览器,需回退到滚动事件方案。
  • SEO 优化:搜索引擎可能不执行 JavaScript,建议结合 <noscript> 标签。
<noscript>
    <img src="path/to/image.jpg" alt="Fallback Image">
</noscript>

通过以上方法,可以有效实现图片懒加载,提升页面加载速度和用户体验。

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

相关文章

jquery.js

jquery.js

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

jquery插件库

jquery插件库

jQuery插件库推荐 jQuery插件库提供了丰富的扩展功能,帮助开发者快速实现常见的前端交互效果。以下是一些常用的jQuery插件库和资源: 1. 官方jQuery插件注册中心jQuery Pl…

jquery库

jquery库

jQuery 库简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。其核心特点是“Write Less, Do More”,…

jquery 面试题

jquery 面试题

以下是一些常见的 jQuery 面试题及其解答,涵盖基础概念、核心方法和实际应用场景。 jQuery 基础概念 jQuery 是什么? jQuery 是一个轻量级的 JavaScript 库,简…

jquery 面试题

jquery 面试题

jQuery 面试题常见考点 DOM 操作 选择器使用:$("#id"), $(".class"), $("tag") 元素增删改查:append(), remove(), html(),…

jquery怎么读

jquery怎么读

jQuery的正确发音 jQuery的发音为 "jay-query"(/ˈdʒeɪkwɪəri/)。其中: "jay" 发音类似字母 "J" 的英文读法。 "query" 发音与英文单词 "quer…