задать высоту 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, время: 08:22. |