2011-03-14 87 views
3

现在,当我替换“foo”div内的内容时,新内容马上就会出现。有 有办法让新内容慢慢淡入。关于jQuery的.html()函数的问题?

<div class="foo">Initial content to be replaced</div> 

$('div.foo').html('New content'); 

我知道的淡入()函数,我为什么问这个问题,因为我不明白怎么能说是技术上是可行的,因为foo的DIV从未隐藏开始的原因,所以如何将它能够“淡入”。但是,如果有人能想到一种最好的方式。

回答

4

使用此:$('div.foo').html('New Content').hide().fadeIn();

1

Live Demo

$('div.foo').html('New content').hide().fadeIn(); 

你先隐藏起来,然后消失它

+0

你的例子没有做了一大堆,因为它执行它的负载魔术。也许在点击或其他东西? – 2011-03-14 01:37:33

+0

感谢您的建议。 – Loktar 2011-03-14 01:39:19

0

你可以试试这个:

$("div.foo").hide("slow").html("New Content").show("slow"); 

这会淡出div,更改内容,然后淡入,这可能会达到您要查找的效果。

2

这里的其他一些答案没有说明转换需要时间的事实 - html将在fadeOut的中间被替换,看起来像一个错误。

假设你想淡出来完成,然后代替HTML,然后淡入,使用回调:

$('div.foo').fadeOut(function() { 
    $(this).html('New content').fadeIn(); 
}); 
+0

OP不希望它淡出..只是淡入。 – Loktar 2011-03-14 02:35:13