首页 > 解决方案 > ResizeObserver 是否最初在页面加载时调用?

问题描述

似乎当我在 DOMContentLoaded 事件上将节点传递给 ResizeObserver.observe() 时,它会立即调用。它被认为是正常行为吗?

标签: javascriptdomobservers

解决方案


是的,这种行为符合规范(参考):

  • 当观察到的元素从 DOM 中插入/删除时,观察将触发。

  • 当观察元素显示设置为无时,观察将触发。

  • 未替换的内联元素不会触发观察。

  • CSS 转换不会触发观察。

  • 如果正在渲染元素并且元素的大小不是 0,0,则观察将在观察开始时触发。

因此,在您的情况下,要么元素尚未在 DOM 中,要么情况 1 将使其触发,要么已经存在,而情况 5 将(尽管在 DOMContentLoaded 中,应该是 5 ;)


推荐阅读