【发布时间】:2018-10-08 06:27:41
【问题描述】:
虽然 MutationObserver 允许监视 HTMLElement 属性的显式大小更改,但它似乎没有一种方法/配置可以让我监视 implicit 对其大小的更改,这些更改由浏览器。
这是一个例子:
const observer = new MutationObserver(changes => {
console.log('changed')
})
observer.observe(document.querySelector('#bar'), {
attributes: true
})
document.querySelector('#foo').style.width = '200px'
.container {
display: flex;
align-items: stretch;
}
.child {
width: 100px;
height: 100px;
margin: 0 2px;
background: magenta;
}
<div class="container">
<div class="child" id="foo"></div>
<div class="child" id="bar"></div>
</div>
在上面的示例中,我正在更改#foo 的大小,同时观察#bar。 #bar 被 #foo 压扁(它的宽度隐式变化,因为浏览器计算了它的宽度,而不是我明确指定它)。
如何检测这种隐式大小变化?
【问题讨论】:
标签: javascript mutation-observers