当前位置:首页 > jquery

jquery懒加载

2026-02-03 19:43:15jquery

jQuery懒加载的实现方法

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

使用jQuery Lazy插件

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

安装插件:

jquery懒加载

<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标记:

jquery懒加载

<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库

jquery库

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

jquery怎么读

jquery怎么读

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

jquery div

jquery div

jQuery 操作 div 元素 jQuery 提供了多种方法来操作 div 元素,包括选择、修改内容、样式调整、事件绑定等。以下是常见操作的示例: 选择 div 元素 通过 ID 选择 div:…

jquery属性

jquery属性

jQuery 属性操作 jQuery 提供了多种方法来操作 HTML 元素的属性。这些方法可以用于获取、设置、修改或删除元素的属性。 获取属性值 使用 attr() 方法可以获取指定属性的值。例如,…

jquery加载

jquery加载

jQuery 加载方法 使用 CDN 加载 jQuery 推荐通过公共 CDN(如 Google、Microsoft 或 jQuery 官方)加载,速度快且可能已被浏览器缓存。 <scri…

jquery 函数

jquery 函数

jQuery 函数基础 jQuery 是一个快速、简洁的 JavaScript 库,通过封装原生 JavaScript 功能简化 DOM 操作、事件处理、动画等。核心函数 $() 或 jQuery()…