ResizeObserverEntry:target 属性

targetResizeObserverEntry 接口的只读属性,它返回对正在观察的 ElementSVGElement 的引用。

价值

表示正在观察的元素的 ElementSVGElement

例子

以下代码段摘自 resize-observer-border-radius.html (查看源代码) 示例。此示例包含一个绿色框,其大小为视窗大小的百分比。当视窗大小发生变化时,框的圆角会按比例变化。我们只需要使用 border-radius 与百分比来实现这一点,但这会导致外观难看的椭圆形圆角;此解决方案提供了随着框大小缩放的漂亮方形圆角。

为了获取对被观察元素的引用,以便我们可以在每次更改后更新其 border-radius 值,我们使用每个条目的 target 属性 - entry.target.style.borderRadius

js
const resizeObserver = new ResizeObserver((entries) => {
  for (const entry of entries) {
    if (entry.contentBoxSize) {
      entry.target.style.borderRadius = `${Math.min(
        100,
        entry.contentBoxSize.inlineSize / 10 +
          entry.contentBoxSize.blockSize / 10,
      )}px`;
    } else {
      entry.target.style.borderRadius = `${Math.min(
        100,
        entry.contentRect.width / 10 + entry.contentRect.height / 10,
      )}px`;
    }
  }
});

resizeObserver.observe(document.querySelector("div"));

规范

规范
Resize Observer
# dom-resizeobserverentry-target

浏览器兼容性

BCD 表格仅在浏览器中加载