ResizeObserver 最初是否在页面加载时调用?
Does ResizeObserver invoke initially on page load?
似乎当我在 DOMContentLoaded 事件上将节点传递给 ResizeObserver.observe() 时,它会立即调用。这被认为是正常行为吗?
是的,此行为符合规范 (ref.):
Observation will fire when watched Element is inserted/removed from DOM.
Observation will fire when watched Element display gets set to none.
Observations do not fire for non-replaced inline Elements.
Observations will not be triggered by CSS transforms.
Observation will fire when observation starts if Element is being rendered, and Element’s size is not 0,0.
所以在你的情况下,要么元素还没有在 DOM 中并且情况 1 会触发它,要么它已经触发,并且情况 5 会 (尽管在 DOMContentLoaded,应该是 5 ;).
似乎当我在 DOMContentLoaded 事件上将节点传递给 ResizeObserver.observe() 时,它会立即调用。这被认为是正常行为吗?
是的,此行为符合规范 (ref.):
Observation will fire when watched Element is inserted/removed from DOM.
Observation will fire when watched Element display gets set to none.
Observations do not fire for non-replaced inline Elements.
Observations will not be triggered by CSS transforms.
Observation will fire when observation starts if Element is being rendered, and Element’s size is not 0,0.
所以在你的情况下,要么元素还没有在 DOM 中并且情况 1 会触发它,要么它已经触发,并且情况 5 会 (尽管在 DOMContentLoaded,应该是 5 ;).