2010-07-28 5 views
0

Существует событие изменения размера DOM, даже для общих элементов, но я не могу найти событие, которое срабатывает при изменении положения элемента. Я хотел бы иметь событие, которое запускается всякий раз, когда изменяется геометрия элемента. Это может быть Mozilla, потому что я пишу Firefox Add-On.JavaScript: есть ли событие изменения геометрии элемента?

Редактировать: Или есть способ привязать элемент к другому, который всегда работает, независимо от того, какие сумасшедшие таблицы стилей могут использоваться (так что один всегда находится поверх другого)?

ответ

1

Edit: Или есть способ прикрепить к элемента к другому, что всегда работы, независимо от того, что с ума таблицы стилей могут быть использованы (так один является всегда на вершине другого)?

вы можете установить кучу !important правил, которые имеют приоритет (если кто-то еще не использует !important, которая редко встречается):

.pinned { 
    position : absolute !important; 
    top  : 0px  !important; 
    right : 0px  !important; 
    bottom : 0px  !important; 
    left  : 0px  !important; 
} 
+0

Ах, в моем случае, что может быть достаточно хорошим. – panzi

0

DOMSubTreeModified - самая близкая вещь, которая не является специфичной для Mozilla, и я не знаю (или подозреваю), что она срабатывает при изменении геометрии. Возможно, вы сможете использовать DOMAttrModified и проверить, какие attrs будут изменены и отправлены на это, если вы знаете, какие атрибуты будут меняться, и предполагая, что вы можете получить с ним атрибуты CSS. Я не думаю, что могу, но я не уверен.

https://developer.mozilla.org/en/Gecko-Specific_DOM_Events содержит событие MozAfterPaint, которое должно быть в состоянии делать то, что вы хотите. Я думаю.

Удачи.

Редактировать: Подождите, зачем вам это нужно «независимо от того, какие сумасшедшие таблицы стилей могут быть использованы»?

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