ResizeObserver.observe()

Experimental: 这是一个实验中的功能
此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。

The observe() method of the ResizeObserver interface initiates observing of a specified Element or SVGElement.
ResizeObserver 接口的 observe() 方法用于观察一个指定Element 或 SVGElement

语法

resizeObserver.observe(target);

参数

target
被观察的 ElementSVGElement 引用。
options 可选
一个指定观察设置的可选参数对象。目前只有一个可设置的选项:
box
设置观察者将以哪种盒子模型来观察变动。可以设置的值为 content-box (默认值),border-box,和 device-pixel-content-box

返回值

undefined

异常

示例

以下示例通过观察box的尺寸变化从而改变其边框圆角半径。

const resizeObserver = new ResizeObserver(entries => {
  for (let entry of entries) {
    entry.target.style.borderRadius = Math.max(0, 250 - entry.contentRect.width) + 'px';
  }
});
resizeObserver.observe(document.querySelector('.box:nth-child(2)'));

规范

Specification Status Comment
Resize Observer
observe()
Editor's Draft Initial definition.

浏览器兼容性

BCD tables only load in the browser