Событие jQuery для определения изменения положения элемента - PullRequest
27 голосов
/ 10 декабря 2008

Я хотел бы знать, существует ли событие jQuery, которое я могу использовать, чтобы определить, когда конкретное свойство top DIV изменилось.

Например, у меня есть невидимый контент над DIV. Когда этот контент становится видимым, DIV сдвигается вниз. Я хотел бы захватить это событие, а затем использовать функцию offset(), чтобы получить координаты X / Y.

Ответы [ 3 ]

8 голосов
/ 10 декабря 2008

Простой ответ заключается в том, что в DOM нет событий для обнаружения обновлений макета.

У вас есть пара вариантов, как я это вижу:

  1. Опрос, противный, но он может работать в зависимости от ваших требований к частоте обновления.

  2. Прикосновение к любому событию заставляет невидимый DIV изменять размер и делать все, что вам нужно сделать в этом обработчике


Я исправлюсь.

Я взглянул на DOM, заметил событие DOMAttrModified и обнаружил этот плагин JQuery , который вы можете использовать для выполнения своих задач.

Как упоминается в статье, он отлично работает в IE и Firefox, но, похоже, имеет проблемы с WebKit.

1 голос
/ 10 декабря 2008

Я думаю, вы должны быть в состоянии:

$(document).ready( function (){
  $("#mydiv").bind("movestart", function (){ ...remember start position... });
  $("#mydiv").bind("moveend", function (){ ...calculate offsets etc... });
});
0 голосов
/ 06 мая 2015
$("#someId").resize(function () {

// your code

});
...