offsetHeight и Opera

Avenus

Under Glory Yield
offsetHeight и Opera

Подскажите, пожалуйста, почему в Opera offsetHeight неверно определяется?

К примеру, для списка UL с элементами LI определяю в javascript:
PHP:
var el=$('div > ul');
alert( el.offsetHeight );
Во всех браузерах (в моем случае) выдает 30, а в Opera 100.
Не могу определить в чем разница.

Может быть просто в Opera по-другому нужно делать?

-~{}~ 10.01.10 20:19:

Обнаружил такой момент:
Если сделать клик по ссылке на эту же страницу со скриптом, то параметр offsetHeight определяется верно.
Но, если просто обновить страницу, то снова косяк.
 

dimagolov

Новичок
https://developer.mozilla.org/En/DOM/Element.offsetHeight:
Specification

offsetHeight is part of the MSIE's DHTML object model. offsetHeight is not part of any W3C specification or technical recommendation.
Notes

offsetHeight is a property of the DHTML object model which was first introduced by MSIE. It is sometimes referred to as an element's physical/graphical dimensions, or an element's border-box height.
В общем совсет или не использовать offsetHeight вообще, или использовать ее только там, где оно предсказуемо работает, или забить на Оперу.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
лучше юзай либу (jquery, mootoos, etc) и не морочь голову подобными проблемами
 

Avenus

Under Glory Yield
grigori, я юзаю jQuery :)
Даже если использовать $(object).innerHeight(), то в Opera все равно не помогает.
...
Но я нашел причину: параметр innerHeight учитывает скрытые блоки.
В моем случае меню с выпадающими подменю.
И, вот, изначально для блока UL вместе со скрытыми элементами LI параметр innerHeight посчитался,
а потом при событии hover отступ выдал не тот, что нужен.

Стал считать параметр innerHeight после наведения мыши на блок и, теперь, во всех браузерах отлично работает.
 

Avenus

Under Glory Yield
Активист, ничего не поделаешь... кто-то только ей и пользуется :)
 
Сверху