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

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

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

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

Он должен работать в chrome, ff2, ff3, ie6 (если не получится, я могу отложить браузер пользователя с таймером xD) ie7, safari, opera ... другими словами, самые популярные браузеры

спасибо;)

Ответы [ 4 ]

4 голосов
/ 17 октября 2013

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

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

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

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

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

3 голосов
/ 27 января 2011

Здесь - это плагин, расширяющий событие jQuery resize() для работы с любым элементом, а не только с окном.

1 голос
/ 27 января 2011

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

... но плагин resize(), упомянутый выше, выглядит лучше, если он работает так, как вам нужно.

1 голос
/ 27 января 2011

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

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