Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.03.2012, 02:09
Новичок на форуме
Отправить личное сообщение для lesh1j Посмотреть профиль Найти все сообщения от lesh1j
 
Регистрация: 06.03.2012
Сообщений: 6

задать высоту 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";

то всё работает, проблема именно с процентами
Может подкаже кто-нибудь. Заранее спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 06.03.2012, 11:25
Интересующийся
Отправить личное сообщение для K313 Посмотреть профиль Найти все сообщения от K313
 
Регистрация: 05.03.2012
Сообщений: 11

Попробуйте менять не height а min-height без применения %
Ответить с цитированием
  #3 (permalink)  
Старый 06.03.2012, 11:44
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

как понял
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";
	}
}
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #4 (permalink)  
Старый 06.03.2012, 16:59
Аспирант
Отправить личное сообщение для alexandr_v-vich Посмотреть профиль Найти все сообщения от alexandr_v-vich
 
Регистрация: 30.01.2012
Сообщений: 78

А почему нельзя просто ставить
obj.style.height = "100%";

Там же всё равно уже переменных нет. Или это не сыграет роли?
Вообще то в этом случае да, или auto или min-height. Но если бы понадобилось именно 100%, вариант так сделать?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JS задать ширину и высоту фоновой картинки andrey888 Элементы интерфейса 4 10.01.2012 18:31
Узнать высоту элемента, у которого высота задана в процентах DonLino jQuery 3 21.09.2011 18:40
Не получается поменять высоту div revvo jQuery 4 06.08.2011 13:12
Родительский div relative принимал высоту вложенного div absolute Oriy Общие вопросы Javascript 7 26.04.2011 08:28
Как получить высоту DIV, установленную автоматически YOricH Internet Explorer 4 22.07.2009 17:15