Гладкая JQuery изменить размер и исчезнуть

Я пытаюсь перезагрузить содержимое div (которое может измениться по высоте) плавно. Я посмотрел на fadeIn(), animate() и т. Д. И не смог найти ничего, что дало бы плавный эффект.

Код, из которого я получил лучший результат:

jQuery(document).ready(function() {
 jQuery('#click').live("click", function() {
  jQuery('#test').animate({'opacity': 0}, 500, function () {
   jQuery(this).html('new text');
  }).animate({'opacity': 1}, 600);
 });
});


<div id="test" style="width:400px;">
My old text is many lines long and contains some pointless info however when you click below we will get rid of it all <span id="click">Link</span>.
</div>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
More content...

Частично эффект, который меня не устраивает - это скачок содержимого ниже div при изменении html-контента, есть ли способ заставить изменение размера происходить, когда оно исчезает, не зная высоты нового контента? (или мне нужно загрузить его в div заполнителя, чтобы вычислить новую высоту)

2 ответа

Решение

Попробуй вот так

<input id="btn" type="button" value="click" />
<div id="child"> 
asda
    <br/>
asd
     <br/>
asd
     <br/>
asd
     <br/>
asd
</div>

скрипт

$("#btn").click(function(){
 $("#child").slideToggle();
});

DEMO

У меня была такая же проблема не так давно... в моем решении это решить получить высоту div ("test") с его новым содержимым и анимировать высоту до этого значения. В результате div изменяет высоту при переходе к новому контенту, а следующий контент следует анимации вверх и вниз.

Удачи

Другие вопросы по тегам