当前位置:首页 > 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 div

jquery div

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

jquery 选择器

jquery 选择器

jQuery 选择器基础语法 jQuery 选择器基于 CSS 选择器语法扩展,用于快速定位 DOM 元素。基本结构为 $("selector") 或 jQuery("selector"),返回一个包…

uniapp实现懒加载

uniapp实现懒加载

uniapp实现懒加载的方法 在uniapp中实现懒加载可以通过多种方式,以下是几种常见的方法: 使用uni.lazyLoad组件 uniapp提供了内置的懒加载组件,适用于图片等资源的懒加载。在页…

jquery 教程

jquery 教程

jQuery 教程概览 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。以下是学习 jQuery 的核心内容和方法。 基础语…

jquery框架

jquery框架

jQuery框架简介 jQuery是一个快速、简洁的JavaScript库,简化了HTML文档遍历、事件处理、动画设计和Ajax交互。其核心特点是“写得更少,做得更多”,通过封装常见任务,降低跨浏览器…

jquery异步

jquery异步

jQuery 异步操作概述 jQuery 提供了多种方法用于处理异步操作,主要包括 AJAX 相关函数和 Deferred/Promise 对象。这些方法简化了异步编程,尤其是在处理 HTTP 请求和…