MS Edge:IntersectionObserver。对你起作用吗?

Pet*_*r D 4 javascript microsoft-edge intersection-observer

在任何人在这里付出太多努力之前,我已经有了一个讨厌的解决方法。我只是想知道是否有人可以使用它。

Edge 15 版现已发布,并支持交叉观察器(用于延迟加载)。

我已经实现了它,它在支持它的所有浏览器中都可以正常工作(Chrome 和 Opera。Firefox 和 Safari 尚未实现),但在 Edge 中根本没有。

没有抛出错误,但从未调用回调。

handleIntersectionElement(elm) {
  if (elm && this.state.enabled && !this.observer) {
    this.observer = new global.IntersectionObserver(this.intersectionCallback, this.options);
    this.observer.observe(elm);
  }
}
Run Code Online (Sandbox Code Playgroud)

选项如下,没什么特别的:

options = { root: null, rootMargin: '100px', threshold: [0] };
Run Code Online (Sandbox Code Playgroud)

这是 React 组件的一部分,但不明白为什么这会有所作为。

zho*_*ujy 5

IntersectionObserver 无法在 Edge 中观察宽度和高度均为 0 的空元素,因此您唯一需要做的就是设置 1px 边框或min-width: 1px; min-height: 1px;在您要观察的元素上。