You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将Div设为Intersection Observer API根元素失效问题排查

自定义Root的Intersection Observer不生效:原因与修复方案

核心问题

Intersection Observer的root元素默认overflow为visible,此时它的视口范围等同于整个文档视口(和root:null效果完全一致)。只有当root元素设置了overflow: auto/scroll/hidden这类溢出裁剪属性时,它的视口才会被限定为自身的边界,此时target与root的相交行为才会触发回调。

修复步骤

  1. 给rootBox添加溢出裁剪属性
    修改CSS中.rootBox的样式,添加overflow: hidden:
.rootBox {
  position: absolute;
  width: 70px;
  height: 70px;
  border: 2px solid rgb(255, 3, 3);
  background-color: rgb(197, 95, 248);
  overflow: hidden; /* 关键:让root视口限定为自身元素边界 */
}

如果需要rootBox支持滚动,可替换为overflow: auto。

  1. 可选:修正拼写错误
    回调函数里的参数enrty是拼写错误,改为entry(不影响功能,但代码更规范):
const obsCallback = function(entries, observer) {
  entries.forEach(entry => console.log('obs works'));
}

验证效果

修改后,当targetBox的任何部分进入rootBox的边界范围时,控制台就会输出obs works提示。

内容的提问来源于stack exchange,提问作者Demi76

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 15:03:26