布局偏移属性
LayoutShiftAttribution
接口提供了有关已偏移元素的调试信息。
通过调用 LayoutShift.sources
,将在数组中返回 LayoutShiftAttribution
的实例。
实例属性
LayoutShiftAttribution.node
只读 实验性-
返回已偏移的元素(如果已被移除则为 null)。
LayoutShiftAttribution.previousRect
只读 实验性-
返回一个
DOMRectReadOnly
对象,表示元素在偏移之前的位置。 LayoutShiftAttribution.currentRect
只读 实验性-
返回一个
DOMRectReadOnly
对象,表示元素在偏移之后的位置。
实例方法
LayoutShiftAttribution.toJSON()
实验性-
返回
LayoutShiftAttribution
对象的 JSON 表示形式。
示例
以下示例查找布局偏移分数最高的元素,并返回该条目中偏移前尺寸最大的元素(previousRect
)。有关此内容的更多详细信息,请参见 在现场调试 Web 指标。
js
function getCLSDebugTarget(entries) {
const largestEntry = entries.reduce((a, b) =>
a && a.value > b.value ? a : b,
);
if (largestEntry?.sources?.length) {
const largestSource = largestEntry.sources.reduce((a, b) => {
const area = (el) => el.previousRect.width * el.previousRect.height;
return a.node && area(a) > area(b) ? a : b;
});
if (largestSource) {
return largestSource.node;
}
}
}
规范
规范 |
---|
布局不稳定性 # sec-layout-shift-attribution |
浏览器兼容性
BCD 表仅在启用 JavaScript 的浏览器中加载。