ResizeObserver:如何获取大小调整后的元素的ID?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ResizeObserver:如何获取大小调整后的元素的ID?相关的知识,希望对你有一定的参考价值。
我正在用ResizeObserver观察多个文本区域。 “ for(允许条目的条目)”循环枚举了所有条目,但我只需要已调整大小的元素的ID。我尝试了this.id,但未定义。
var myObserver = new ResizeObserver(entries => {
console.log(this.id);
for (let entry of entries) {
// do something
}
});
var boxes = document.querySelectorAll('textarea');
boxes.forEach(box => {
myObserver.observe(box);
});
答案
可以同时更改/调整多个文本区域的大小,因此需要使用数组来跟踪每个更改。但是,大多数情况下,只有一个元素会调整大小。在这种情况下,您可以从entries
中获取第一个元素,并获取其target.id
值:
const myObserver = new ResizeObserver(entries => {
const [changed] = entries;
console.log(changed.target.id);
});
const boxes = document.querySelectorAll('textarea');
boxes.forEach(box => {
myObserver.observe(box);
});
<textarea id="1">1</textarea>
<textarea id="2">12</textarea>
<textarea id="3">123</textarea>
以上是关于ResizeObserver:如何获取大小调整后的元素的ID?的主要内容,如果未能解决你的问题,请参考以下文章
ResizeObserver - 元素resize监听API