IntersectionObserver实现图片懒加载(超详细!)

本文详细介绍了如何利用IntersectionObserver API实现图片懒加载。通过定义img元素的data-src属性存储真实图片资源,结合浏览器原生的IntersectionObserver构造函数,监听图片是否进入可视区域,以提高页面性能。在回调函数中处理图片加载,并通过配置选项调整根元素、根边距和阈值,确保在适当时候加载图片。
摘要由CSDN通过智能技术生成

关于IntersectionObserver 官方上说明是提供了一种异步观察目标元素与其祖先元素或顶级文档视窗(viewport)交叉状态的方法。祖先元素与视窗(viewport)被称为根(root)

具体的内容可以参考官网解释:https://developer.mozilla.org/zh-CN/docs/Web/API/IntersectionObserver

这里我们主要来用IntersectionObserve来实现图片的懒加载。

图片的懒加载原理可以分为三步 :

  1. 我们先定义好img元素,我们也可以通过DOM动态添加,可以预先定义好img元素,并给他们一个基础的加载的图片作为公共图片。
  2. 给每个img元素加上data-src来存放真正图片的资源。
  3. 我们通过图片在整个界面的高度位置来和目前可视区域的高度进行比较,如果在可是区域内就进行图片资源的加载,不然就先不加载,从而提高性能。

在这里我们通过IntersectionObserve来实现图片懒加载。IntersectionObserver是浏览器原生提供的构造函数,他支持一个回调函数和,一个可选参数。

const intersectionObserve = new IntersectionObserver(callback, option)

callback的回调函数用来 处理浏览器可视区域的变化,option是一个可选的配置对象。

callback():

  当目标元素可视性变化时就会执行的函数。

option:

配置选项,其中包括root, rootMargin, thresholds

  1.   root: 所监听对象的具体祖先元素,若未指定则默认顶级元素
  2.   rootMargin: 计算交叉时添加到根边界盒的矩形偏移量,可以有效的放大和缩小根的判定范围。
  3.   thresholds: 一个阈值数组每个阈值都是交叉区域和边界区域的比例,当监听对象的可视部分穿过阈值时就会指向指定的
  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值