задать высоту div в процентах
Здравствуйте. Есть функция, которая плавно раворачивает div.
function Show(objId, hBlock)
{
var obj = document.getElementById(objId);
if (obj.offsetHeight < hBlock)
{
obj.style.height = (obj.offsetHeight + 5) + "px";
setTimeout (function(){Show(objId, hBlock)}, 1);
}
}
Всё отлично работает, но после того, как функция закончила работу высоту этого дива нужно сделать 100%. Нужно это потому, что высота разворачиваемого дива будет потом изменяться в зависимости от контента(в нем тоже будут раворачивающиеся блоки). Пробовал делать так:
function Show(objId, hBlock)
{
var obj = document.getElementById(objId);
if (obj.offsetHeight < hBlock)
{
obj.style.height = (obj.offsetHeight + 5) + "px";
setTimeout (function(){Show(objId, hBlock)}, 1);
}
if(obj.offsetHeight == hBlock)
{
obj.style.height = 100 + "%";
}
}
но почему-то высота становится 188px(если hBlock задаю 185) хотя если вместо obj.style.height = 100 + "%"; вствить, например obj.style.height = 250 + "px"; то всё работает, проблема именно с процентами Может подкаже кто-нибудь. Заранее спасибо. |
Попробуйте менять не height а min-height без применения %
|
как понял
function Show( objId, hBlock ) {
var obj = document.getElementById( objId );
if ( obj.offsetHeight < hBlock ) {
obj.style.height = ( obj.offsetHeight + 5 ) + "px";
setTimeout ( function(){ Show( objId, hBlock ) }, 10 );
} else {
obj.style.height = "auto";
}
}
|
А почему нельзя просто ставить
obj.style.height = "100%"; Там же всё равно уже переменных нет. Или это не сыграет роли? Вообще то в этом случае да, или auto или min-height. Но если бы понадобилось именно 100%, вариант так сделать? |
|
| Часовой пояс GMT +3, время: 23:09. |