IntersectionObserver 交叉观察者 -- 观察目标元素与可视区域的交叉区域

本文介绍了IntersectionObserver API,用于异步观察目标元素与可视区域的交集变化。通过创建新的IntersectionObserver实例,设置回调函数和选项,可以实现页面滚动时的动画效果、懒加载资源和埋点曝光等应用场景。
摘要由CSDN通过智能技术生成

介绍
IntersectionObserver 提供了一种异步观察目标元素与祖先元素或顶级文档视口的交集变化的方法。

IntersectionObserver接收两个参数,分别是callback和options。options可选,有默认值。
const observer = new IntersectionObserver(callback[, options]);

基本使用

<div class="viewableArea">
  指定的可视区域
​
  <div class="target">被监听的目标元素</div>
​
  内容很多,都多到出现滚动条了。内容很多,都多到出现滚动条了。内容很多,都多到......
</div>
  const specifiedViewableArea = document.getElementsByClassName('viewableArea')[0];
  const target = document.getElementsByClassName('target')[0];const options = {
   
    // 指定可视区域
    root: specifiedViewableArea,
    // 给可视区域添加”虚拟“外边距
    rootMargin: '0px',
    // 当目标元素与指定可视区发生交叉,且目标元素出现在可视区的部分占目标元素的比例是0.33时,触发callback的调用。
    threshold: 0.33,
  };const callback = (entries: IntersectionObserverEntry[], observer?: IntersectionObserver) => {
   
    entries.forEach((entry) => {
   
      console.log('entry:', entry)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值