如何使用HTML和ResizeObserver监听元素尺寸变化?
- 内容介绍
- 文章标签
- 相关推荐
本文共计900个文字,预计阅读时间需要4分钟。
它只响应元素+content-box+尺寸的变化,也就是宽高(不含+padding+、+border+、+margin+)。例如:
常见误判场景:
• 元素被父容器 overflow: hidden 截断,自身没变,但“可见区域”变了 → ResizeObserver 不管这个
• 使用 transform: scale() 视觉上放大 → 实际 layout 尺寸未变 → 不触发
• visibility: hidden 或 opacity: 0 → 元素仍在文档流且尺寸未变 → 不触发
怎么正确创建和使用 ResizeObserver 实例
必须用 new ResizeObserver() 构造,回调函数接收两个参数:entries(ResizeObserverEntry 数组)和 observer(当前实例)。每个 entry 的 contentRect 是核心数据源,含 width/height/top/left 等只读属性。
本文共计900个文字,预计阅读时间需要4分钟。
它只响应元素+content-box+尺寸的变化,也就是宽高(不含+padding+、+border+、+margin+)。例如:
常见误判场景:
• 元素被父容器 overflow: hidden 截断,自身没变,但“可见区域”变了 → ResizeObserver 不管这个
• 使用 transform: scale() 视觉上放大 → 实际 layout 尺寸未变 → 不触发
• visibility: hidden 或 opacity: 0 → 元素仍在文档流且尺寸未变 → 不触发
怎么正确创建和使用 ResizeObserver 实例
必须用 new ResizeObserver() 构造,回调函数接收两个参数:entries(ResizeObserverEntry 数组)和 observer(当前实例)。每个 entry 的 contentRect 是核心数据源,含 width/height/top/left 等只读属性。

