每次div改变它的大小时如何运行一个函数?

时间:2011-01-27 00:54:43

标签: javascript events resize

每次div改变大小时如何运行函数?

当窗口改变其大小时,Div的大小通常会改变,但不仅如此; 新的宽度/高度并非每次都由css设置,但每次更改时我都需要获得该高度的实际宽度/高度。

我使用jQuery,因此基于此会很好;

它必须在chrome,ff2,ff3,ie6中工作(如果无法工作我可能会使用定时器xD延迟用户的浏览器)ie7,safari,opera ...换句话说最流行的浏览器

谢谢;)

4 个答案:

答案 0 :(得分:4)

这个问题已被问到'11,但是当我通过Google来到这里时,我想澄清一些事情。

1)已经有一种可靠的方法来检查几乎所有浏览器中的元素是否已被更改。检查我的lib:

http://marcj.github.io/css-element-queries/

此库有一个类ResizeSensor,可用于调整大小。它使用基于事件的方法,因此速度快,不会浪费CPU时间。

2)请执行不使用 jQuery onresize插件,因为它使用setTimeout()循环来检查更改。这是令人难以置信的缓慢而不准确。

答案 1 :(得分:3)

Here是一个插件,可以扩展jQuery的resize()事件,以处理任何元素,而不仅仅是窗口。

答案 2 :(得分:1)

尝试onresize活动(http://www.w3schools.com/jsref/event_onresize.asp):

<div onresize="alert('You have changed the size of the window')"></div>

答案 3 :(得分:1)

<强> Here is a demo that uses polling to accomplish what you need...

...但如果上面提到的resize()插件按照您需要的方式工作,那么它就会更好。