Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Применение библиотек > Анимирование изменения высоты


Автор: Glook 7.8.2008, 00:05
Пытаюсь анимировать изменение высоты блока используя jquery, но чего-то не получается.  Проблема в том, что начально значение блока указано в пикселях, а конечное значение неизвестно. 

подробнее: Блок с помощью css изначально ограничен по высоте, и его содержимое видно пользователю не полностью. Но при желании пользователь кликает на элемент интерфейса и блок увеличивается по высоте показывая всё содержимое. Содержимое блока меняется, тоесть его конечную высоту в пикселях задать нельзя. 
Приведённый ниже код работает только наполовину, блок увеличивается, но без анимации...
Подскажите, пожалуйста, как это решить.

Код


$('#container').animate({'height': '100%'}, 'slow');


 

Автор: krundetz 7.8.2008, 08:33
Насколько я понимаю причина отсутствия анимации в том что используются разные величины. Возможно стоит и конечную величину указывать тоже в пикселях. Для этого просто необходимо вычислить эту величину. Я в свое время подгружал все содержимое делал происовывал его но где нибудь на самом нижнем слое  чтоб он небыл заметин пользователю получал у него его размеры и уже вывадил его на экран там где мне нужно было а нужно было точно по середине. Вы можете поступить также только в вашем случае необходимо делать анимацию.

Автор: Glook 8.8.2008, 00:37
krundetz, почему же в таком случае анимирование ширины работает корректно  даже при разных значениях (начальное в пикселях конечное в процентах)

про вычисление высоты не понял...

Автор: krundetz 8.8.2008, 05:44
Цитата(Glook @ 8.8.2008,  00:37)
krundetz, почему же в таком случае анимирование ширины работает корректно  даже при разных значениях (начальное в пикселях конечное в процентах)

про вычисление высоты не понял...

Надо копать код значит и смотреть как там реализовано и то и другое.

Про вычисление все просто у вас изначально есть элемент до размеров которого вам надо увеличить область это может быть и экран и какойо блок. Так вот перед тем как анимировано изменять свой элемент вычислите до каких размеров он должен увеличиться и задайте их как конечные.

Возможно стоит попробовать скорость прохождения задать числом а не констаной. Вы пробовали менять slow на normal или fast?


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)