jQuery如何实现懒加载

发布时间:2025-02-12 06:40:05 作者:小樊
来源:亿速云 阅读:84

在 jQuery 中,可以使用 window.onload 或者 $(document).ready() 来实现页面加载完成时执行某些操作。但是,如果你想要实现懒加载(即在用户滚动页面并且图片进入可视区域时才加载图片),你可以使用以下方法:

  1. 首先,确保已经在 HTML 文件中引入了 jQuery 库:
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
  1. 创建一个包含图片链接的 HTML 元素,如 <div>,并为其添加一个类名(例如 lazy-load):
<div class="lazy-load">
  <img data-src="image1.jpg" alt="Image 1">
</div>
<div class="lazy-load">
  <img data-src="image2.jpg" alt="Image 2">
</div>
<!-- 更多图片... -->

注意,我们将 src 属性替换为 data-src,以便在页面加载时不加载图片。

  1. 创建一个 JavaScript 文件或在 HTML 文件中添加以下代码,以实现懒加载功能:
$(document).ready(function() {
  // 获取所有带有类名 "lazy-load" 的元素
  var lazyLoadImages = $('.lazy-load');

  // 定义一个函数,当图片进入可视区域时执行
  function loadImage(image) {
    // 将 data-src 属性的值设置为 img 元素的 src 属性,以加载图片
    image.attr('src', image.data('src'));

    // 从 DOM 中移除 lazy-load 类,以避免重复加载
    image.removeClass('lazy-load');
  }

  // 使用 Intersection Observer API 监听元素是否进入可视区域
  var observer = new IntersectionObserver(function(entries, observer) {
    entries.forEach(function(entry) {
      if (entry.isIntersecting) {
        // 当图片进入可视区域时,调用 loadImage 函数并传递当前图片元素
        loadImage(entry.target);

        // 从 observer 中移除当前图片元素,以避免重复调用
        observer.unobserve(entry.target);
      }
    });
  });

  // 为每个 lazy-load 图片元素添加 Intersection Observer 监听
  lazyLoadImages.each(function() {
    observer.observe(this);
  });
});

这段代码首先获取所有带有类名 “lazy-load” 的元素,然后使用 Intersection Observer API 监听它们是否进入可视区域。当图片进入可视区域时,将 data-src 属性的值设置为 img 元素的 src 属性,以加载图片,并从 DOM 中移除 lazy-load 类,以避免重复加载。

推荐阅读:
  1. vue实现路由懒加载及组件懒加载的方式
  2. 如何实现前端图片懒加载

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

jquery

上一篇:jQuery如何处理触摸事件

下一篇:jQuery如何与其他库共存

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》