Сообщение от (Sandr)
|
Мне не нужно задавать на сколько должен раскрыться див, мне нужно, чтоб он просто раскрывался и всё. Как в jQuery.
|
для этого случая предусмотрено несколько вариантов:
1. если блок скрыт, но у него заданы некие значения в css (height+padding-top/bottom) или они заранее известны, то нужно брать их.
2. получить неизвестные значения, можно путем задания абсолютного позиционирования элементу и взятия у него свойста
offsetHeight. Если элемент скрыт неполностью или есть какие-то еще причины по которым нельзя задать исходному элементу абсолютное значение, то в этом случае сперва делается клонирование объекта с помощью метода
cloneNode().
<style type="text/css">
#wrap {display: none;}
#wrap div {height: 50px;}
</style>
<div id="wrap">
<div></div>
<div></div>
</div>
<script type="text/javascript">
var div = document.getElementById('wrap');
// временно меняем css-значения
div.style.cssText = 'display: block; position: fixed; visibility: hidden; overflow: hidden';
//получаем значение высоты
var height = div.offsetHeight;
//восстанавливаем значения
div.style.cssText = 'display: ; position: ; visibility: ; overflow: ';
alert([height, div.offsetHeight]);
</script>
PS: конкретно этот вариант, на кроссбраузерность не проверял.