2012-01-27 56 views
4

使用document.getElementByID('div1').clientHeight如何检测div1的高度是否发生变化?检测DIV高度是否发生变化

如果条件(Div1的高度变化)满足,我需要进行操作。

E.g.

if(document.getElementByID('div1').clientHeight != //old div1's height) 
{ 
    // do my operation 
} 

任何人都可以提供给我这种JavaScript的语法。

+3

在什么情况下DIV的高度发生变化?你在操纵它的内容吗?如果是的话,只要你改变它的内容就触发操作。 – 2012-01-27 14:47:36

+0

另外'window.resize'可以改变DIV的高度 – 2012-01-27 14:49:58

+0

是啊!随着新数据将被添加到div1中,div1的高度会动态变化。 – 2012-01-27 14:50:03

回答

-1

我可以使用jQuery像这样

$(elm).resize(function(event) { 
    alert('resized!'); 
    /* ... other code ... */ 
}); 

更多信息请参见http://api.jquery.com/resize/

独立于任何实现,您应该使用throttler:“resize处理程序中的代码不应该依赖处理程序调用的次数。根据实现,调整大小事件可以在调整大小时继续发送(在Internet Explorer和基于WebKit的浏览器(如Safari和Chrome)中的典型行为),或者在调整大小操作结束时(一些其他浏览器(如Opera)中的典型行为)。

+1

btw,jquery未被标记。 :) – Dev 2012-01-27 14:50:41

+1

不适用于DIV ... – 2012-01-27 14:50:55

+0

@ŠimeVidas啊,你似乎是正确的。不过,您可以手动触发“调整大小”事件,例如基于点击或键盘操作。 – 2012-01-27 14:54:50

-1
document.getElementById('div1').onresize = function() {...}; 

把你想要的任何代码放入函数中。

我不是100%肯定这会工作。您最好拥有一个setInterval,它会检查offsetHeight是否已经更改并相应地执行。

+1

没有。这是行不通的。 – 2012-01-27 14:55:05

+0

这没有工作:( – 2012-01-27 14:56:51

0

利用div的style属性。也许你的老div1的高度是20px;

if(document.getElementByID('div1').style.height != 20px;) 
{ 
    // do my operation 
}