2012-01-27 5 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? Вы манипулируете его контентом? Если да, просто запускайте операцию, когда вы меняете ее содержимое. –

+0

Также 'window.resize' может изменить высоту DIVs –

+0

Да! Высота div1 динамически изменяется по мере добавления к ней новых данных. –

ответ

-1

Я хотел бы использовать JQuery, как так

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

См http://api.jquery.com/resize/ для получения дополнительной информации.

Независимо от любой реализации, вы, вероятно, должны использовать дроссель: «Код в обработчике изменения размера никогда не должен полагаться на количество вызовов обработчика. (типичное поведение в браузерах Internet Explorer и WebKit, таких как Safari и Chrome) или только один раз в конце операции изменения размера (типичное поведение в некоторых других браузерах, таких как Opera) ».

+1

btw, jquery не отмечен. :) – Dev

+1

Не работает для DIVs ... –

+0

@ ŠimeVidas Ах, вы, кажется, правы. Тем не менее, вы можете запустить событие «изменить размер» вручную, например, на основе щелчка или нажатия клавиш. –

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

Введите код, который вы хотите в функции.

Я не на 100% уверен, что это сработает. Возможно, вам будет лучше иметь setInterval, который проверяет, изменился ли offsetHeight и действует соответственно.

+1

Нет. Это не работает. –

+0

Это не сработало :( –

0

Используйте свойство стиля div. возможно, ваша старая высота Div1 составляет 20 пикселей;

if(document.getElementByID('div1').style.height != 20px;) 
{ 
    // do my operation 
} 
Смежные вопросы