Использование jQuery для анимации вставки текста в Div

#jquery #jquery-animate

#jquery #jquery-анимировать

Вопрос:

Возможно ли использовать jQuery animate для плавного заполнения div содержимым, т.Е. анимировать высоту div, увеличивающуюся по мере вставки содержимого?

Например (HTML):

  <div id="my-div"></div>
  

Затем (JavaScript):

  $("#my-div").html("some new really long string of text which makes the div height increase.");
  

Я хотел бы анимировать вставку HTML-кода и, следовательно, увеличение высоты.

Комментарии:

1. Слайд-шоу возможно, но мне очень нравится fadeIn для чего-то подобного.

2. @Justin Я отредактировал свой ответ. Проверьте это.

Ответ №1:

Если вы хотите по-настоящему анимировать текст, вам придется медленно добавлять текст, по одной букве за раз. Вы можете получить аналогичный эффект, используя то, о чем уже упоминали другие, .slideDown()

http://jsfiddle.net/rkw79/fCAVp/

 $("#my-div")
    .hide()
    .html("some new really long string of text ...")
    .slideDown('slow');
  

Ответ №2:

Возможно, вы могли бы использовать комбинацию атрибутов css overflow:hidden; height:... и функции slideDown() jQuery.

Вставьте текст в div с фиксированной высотой, определите новую высоту и анимируйте его.

Ответ №3:

Ответ очень прост: регулируйте высоту автоматически и очень медленно по мере того, как вы добавляете больше текста в div:

 $('#thedivid').append('<p>' newtextbeingadded '</p>').animate( { 'height':'auto' },5000 );
  

Вероятно, это должно сработать. Возможно, вам потребуется соответствующим образом настроить 5000.

Кроме того, есть вероятность, что появится вертикальная полоса прокрутки, поэтому вы захотите сделать ‘thedivid’ с overflow: hidden;

Удачи!

Ответ №4:

вы можете использовать slideDown() и slideUp() .

что-то вроде этого:

 $("#my-div").slideUp('slow', function() { $("#my-div").html("some new really long string of text which makes the div height increase."); }).slideDown('slow');
  

Редактировать:

возможно, вы захотите плавно увеличить высоту div, для этого вы можете использовать animate() и height() this way .

Я также создал FadeIn sample .