реальная высота элемента, скрытого внутри другого элемента

У меня проблема, но проявляется она только в firefox. Когда я пытаюсь получить высоту элемента, он возвращает только видимую часть элемента (в firefox, в остальных браузерах он возвращает всю высоту элемента).

Структура следующая:

<ul class="slider">
   <li><div>//content</div></li>
   <li><div>//content</div></li>
   <li><div>//content</div></li>
   ...
</ul>

Я использую скрипт caroufredsel для карусели. Мне нужно получить высоту самого высокого элемента, чтобы установить высоту всей карусели, потому что, когда я пытаюсь использовать опцию height: "auto", она все еще не работает.

Поэтому я спрашиваю - как получить реальную высоту элемента, который частично скрыт из-за свойства переполнения?


person Kamil    schedule 14.11.2012    source источник
comment
Можем ли мы увидеть ваш код javascript, чтобы получить высоту элементов?   -  person Magus    schedule 14.11.2012
comment
Хорошо, чтобы уточнить, сначала я просматриваю каждый элемент li в списке, используя $('ul.slider li').each(function(index) { if ($(this).height() > maxHeight) { maxHeight = $(this).height(); } if (0 == --count) initializeSlider(); });, а затем запускаю ползунок с параметром height: maxHeight. Также, когда я проверил инспектора в firefox, высота элементов отличается от той, которая была возвращена с помощью .height().   -  person Kamil    schedule 14.11.2012


Ответы (1)


Попробуйте использовать outerHeight вместо height или посмотрите на это - http://dreamerslab.com/blog/en/get-hidden-elements-width-and-height-with-jquery/ - позволяет использовать такие конструкции: $( '.hidden' ).actual( 'width' );

person Dmitry Volokh    schedule 14.11.2012
comment
Я изменил свой ответ. Посмотрите еще раз, пожалуйста. - person Dmitry Volokh; 14.11.2012
comment
также пробовал эту библиотеку, все равно возвращает только видимую часть элемента.. почему это происходит только с firefox? - person Kamil; 14.11.2012
comment
Только что нашел тот же вопрос - stackoverflow.com/questions/2345784/ - person Dmitry Volokh; 14.11.2012
comment
это не то же самое, потому что мой элемент не скрыт, его переполнение установлено только как скрытое, элемент виден, а отображение настроено на блокировку - person Kamil; 14.11.2012
comment
Не могли бы вы сделать пример jsfiddle? - person Dmitry Volokh; 14.11.2012
comment
jsfiddle.net/3pZW3/1, но, как я вижу, проблема здесь не возникает, она должна быть что-то с контейнером тогда .. - person Kamil; 14.11.2012
comment
ладно, я уже разобрался, потому что скрипт, предотвращающий мерцание контента... - person Kamil; 14.11.2012