1
Amy 原创整理|资料核验:2026-10-30
MDN介绍,ResizeObserver观察元素内容盒、边框盒或SVG包围盒的尺寸变化,即使浏览器窗口没有变大或缩小,也能收到元素尺寸变化通知。例如侧栏展开导致正文容器变窄,就属于适合观察的教学场景。
但如果回调每次都把被观察元素再加宽一些,新的尺寸变化会继续触发观察。浏览器出现“ResizeObserver loop completed with undelivered notifications.”提示,并不表示它已经修复应用里的循环依赖。
Amy建议:先明确观察哪种盒尺寸,再检查回调是否又改变了触发源;可以记录预期尺寸,在已经达到目标时不再重复设置。只把修改放入requestAnimationFrame并不能解释或消除一个本来无止境增长的设计。元素不再需要观察时,用unobserve或disconnect清理相应观察关系。
官方来源:
https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserver