当前位置:首页 > jquery

jquery 懒加载

2026-04-08 11:06:57jquery

jQuery 懒加载实现方法

懒加载(Lazy Load)是一种优化网页性能的技术,延迟加载图片或其他资源,直到用户滚动到它们附近时才加载。以下是使用 jQuery 实现懒加载的几种方法。

使用 jQuery Lazy 插件

jQuery Lazy 是一个轻量级的懒加载插件,支持图片、背景图等多种资源的延迟加载。

  1. 引入 jQuery 和 jQuery Lazy 插件

    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/jquery-lazy@1.7.11/jquery.lazy.min.js"></script>
  2. 初始化懒加载

    $(function() {
     $('.lazy').Lazy();
    });
  3. HTML 标记

    jquery 懒加载

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

自定义 jQuery 懒加载

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

  1. HTML 标记

    <img class="lazy" data-src="path/to/image.jpg" alt="Lazy loaded image">
  2. jQuery 代码

    jquery 懒加载

    $(document).ready(function() {
     $(window).on('scroll', function() {
         $('.lazy').each(function() {
             if ($(this).offset().top < $(window).scrollTop() + $(window).height()) {
                 $(this).attr('src', $(this).data('src'));
                 $(this).removeClass('lazy');
             }
         });
     }).trigger('scroll');
    });

使用 Intersection Observer API

Intersection Observer API 是现代浏览器提供的更高效的懒加载方案,配合 jQuery 使用。

  1. HTML 标记

    <img class="lazy" data-src="path/to/image.jpg" alt="Lazy loaded image">
  2. jQuery 代码

    $(document).ready(function() {
     if ('IntersectionObserver' in window) {
         const lazyImages = $('.lazy');
         const imageObserver = new IntersectionObserver(function(entries, observer) {
             entries.forEach(function(entry) {
                 if (entry.isIntersecting) {
                     const lazyImage = $(entry.target);
                     lazyImage.attr('src', lazyImage.data('src'));
                     lazyImage.removeClass('lazy');
                     imageObserver.unobserve(entry.target);
                 }
             });
         });
    
         lazyImages.each(function() {
             imageObserver.observe(this);
         });
     } else {
         // Fallback for older browsers
         $(window).on('scroll', function() {
             $('.lazy').each(function() {
                 if ($(this).offset().top < $(window).scrollTop() + $(window).height()) {
                     $(this).attr('src', $(this).data('src'));
                     $(this).removeClass('lazy');
                 }
             });
         }).trigger('scroll');
     }
    });

优化建议

  • 添加占位符图片或背景色,避免布局抖动。
  • 设置适当的阈值(threshold),提前加载图片。
  • 对移动端和桌面端分别优化触发条件。
  • 考虑使用 loading="lazy" 原生属性作为备用方案。

以上方法可根据项目需求选择,插件方案适合快速实现,自定义方案更灵活,Intersection Observer API 性能最佳。

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

相关文章

jquery 筛选器

jquery 筛选器

jQuery 筛选器 jQuery 筛选器用于从一组匹配的元素中进一步筛选出符合条件的子集。这些筛选器可以基于元素的位置、内容、属性或状态进行筛选。 基本筛选器 :first 选择第一个匹配的元素。…

jquery代码

jquery代码

以下是关于jQuery代码的常见用法和示例,涵盖基础操作、事件处理、DOM操作等核心功能: 基础语法 jQuery通过$()函数选择元素,支持CSS选择器语法: // 选择所有<p>元…

jquery 表单

jquery 表单

jQuery 表单操作 使用 jQuery 操作表单可以简化 DOM 操作,提高开发效率。以下是一些常见的表单操作方法: 获取表单元素的值 使用 val() 方法可以获取或设置表单元素的值。 //…

jquery隐藏

jquery隐藏

jQuery 隐藏元素的方法 使用 jQuery 隐藏元素可以通过多种方式实现,以下是几种常见的方法: hide() 方法hide() 是最简单的隐藏元素方法,它会将元素的 display 属性设置…

jquery格式

jquery格式

jQuery 基本格式 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。以下是 jQuery 的基本使用格式: $(docu…

jquery地址

jquery地址

jQuery 官方地址 jQuery 的官方网站和 CDN 地址如下: 官网:https://jquery.com/ CDN 链接(通过 jQuery 官网提供): <script…