当DOM元素的计算样式发生变化时触发事件?

nam*_*uol 8 javascript css dom

是否有非轮询方法来监听元素计算样式的更改?

这个幻想代码片段应该简洁地解释我的意思:

var el = document.getElementById('doodad');

el.addComputedStyleChangeListener('width', function (prev, new) {
  alert('Previous width: ' + prev + '; New width: ' + new);
});
Run Code Online (Sandbox Code Playgroud)

我知道DOMAttrModified突变事件和即将发生的事件MutationObserver,但两者都不够 - 它们只能用于观察style元素的DOM属性,这并不能完全确定元素的计算样式.


这个问题的用例原本就是这个问题的一部分,这真的只会引起我的好奇心.

c-s*_*ile 3

没有这样的方法。CSSOM还没有出现。

目前还不清楚“计算风格改变”是什么意思。

原则上,您可以检测使用的(例如渲染)样式的变化。但这需要发生一些诸如“绘制”或“布局”之类的事件。