计算样式更改是否触发了任何事件?

时间:2015-07-03 00:04:35

标签: javascript events computed-style getcomputedstyle

我可以在JavaScript中监听一个事件,告诉我特定DOM元素的计算样式是否已更改?

如果没有,使用JavaScript获取DOM元素的计算样式的阻塞方法是什么?

1 个答案:

答案 0 :(得分:0)

更改DOM元素的计算样式时没有事件侦听器。

如果您喜欢,可以自己编写一个,通过setInterval观察getComputedStyle的值,但根据实现情况,它可能很昂贵且难以处理。

如果你只是担心调整大小时的样式更改,你应该使用window.onresize(下面),或者可能使用JQuery resize事件处理程序。

window.onresize = function(event) {
    ...
};

关于引用CSS3属性的深入跨浏览器解决方案有一个非常好的阅读here,但以下是通过this answer为各种流行浏览器提供的简单解决方案。

  

这不是jQuery,但在Firefox,Opera和Safari中你可以使用   window.getComputedStyle(element)获取计算出的样式   元素,在IE< = 8中,您可以使用element.currentStyle。归来了   在每种情况下对象都不同,我也不确定它们有多好   使用Javascript创建的元素和样式,但也许   它们会很有用。

     

在Safari中,您可以执行以下操作:

document.getElementById('b').style.cssText = window.getComputedStyle(document.getElementById('a')).cssText;