2013-12-11 80 views
0

好的,所以我有一组字符,我希望它们一次显示一个字符。这是我想要使用的代码:

$.each(characterarray, function(index, value){ 
    $("div").fadeOut(300).delay(10).append(value).fadeIn(300); 
}); 

所以不是淡出,等待,追加数组的一个,并在淡出

它会:淡出,等等,所有附加数组和淡入。

当我用

alert(value); 

,它会申请一个警告每个字母,但是当我试图将追加它会显示所有的阵列中的一次。

+1

而不是开始在循环中的所有动画,倒不如开始一个动画,并给它一个回调函数启动下一个,等等。 – Barmar

回答

2

循环立即结束,你必须增加延迟

$.each(characterarray, function(index, value){ 
    $("div").delay(index*1000).fadeOut(300, function() { 
     $(this).append(value).delay(10).fadeIn(300); 
    }); 
}); 

FIDDLE

+0

使用fx队列的替代解决方案:http://jsfiddle.net/hL9UB/2/我想我更喜欢你的。 –

+0

我试着用adeneo做一个,但是帖子里的代码不起作用。出于某种原因,该页面保持空白状态,直到所有代码都已运行,然后淡入淡出所有结果。而不是一次只做一个角色(如果有意义的话)小提琴代码可以工作,但是可以让每个角色使用一个div而不是新div吗? –

+0

@随机 - 公民 - 不知道我明白了,但是像这样 - > http://jsfiddle.net/hL9UB/3/ – adeneo

相关问题