2011-01-27 4 views
4

Как запускать функцию каждый раз, когда div меняет свой размер?Как запустить функцию каждый раз, когда div меняет свой размер?

Размер Div обычно изменяется, когда окно меняет свой размер, но НЕ; Новая ширина/высота не каждый раз задается css, но мне нужно получить реальную ширину/высоту этой высоты, когда каждый раз она изменяется.

Я использую jQuery, поэтому на основе этого было бы хорошо;

Она должна работать в хроме, ff2, FF3, IE6 (если не может работать я мог бы запаздывать браузер пользователя с таймером XD) IE7, сафари, опера ... другими словами наиболее популярными браузерами

спасибо;)

ответ

3

Here это плагин, который расширяет resize() событие JQuery, чтобы работать на любом элементе , а не только окно.

+0

ok, thanks .. Я вижу, что это only way ...: s –

+0

Пожалуйста, не используйте этот плагин jQuery. Это очень медленно и неточно. Пожалуйста, см. Мой ответ ниже для лучшего решения. –

1

Попробуйте onresize событие (http://www.w3schools.com/jsref/event_onresize.asp):

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

, который не работает на div в ie, ff, chrome, opera .. –

+0

с первого взгляда, w3c, кажется, предоставляет его только 'window' и' body' –

4

Этот вопрос задан '11, но поскольку я пришел сюда через Google, я хочу прояснить некоторые вещи.

1) Существует уже надежный метод проверки того, был ли элемент изменен почти во всех браузерах. Проверьте это мое Lib:

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

Эта библиотека имеет класс ResizeSensor, который может быть использован для обнаружения изменения размера. Он использует подход, основанный на событиях, так что он проклят быстро и не тратит время процессора.

2) Пожалуйста, сделайте не использовать плагин onresize jQuery, так как он использует setTimeout() цикл для проверки изменений. ЭТО НЕВЕРОЯТНО МЕДЛЕННО И НЕ ТОЧНО.

+0

спасибо, он может быть полезен сегодня :) –

Смежные вопросы