2013-12-20 36 views

回答

1

使用淡出的完整的回调,这样的下一个项目淡入另一个已经淡出之后。您看到的行为的原因是由于淡入淡出功能的异步性质。使用您的代码片断,它将启动fadeoutfadeIn,而不会完成先前的动画。

var $slideContainer = $("#aboutslideshow"); 
$slideContainer.children("div:gt(0)").hide(); 

setInterval(function() { 
    $slideContainer.children('div:first') 
     .fadeOut(1000, function() { 
     $(this).next() 
      .fadeIn(1000) 
      .end() 
      .appendTo($slideContainer); 
    }) 

}, 4200); 

Demo

+0

谢谢!非常感激。奇怪的是,它会执行这样的 - 只有专业人士会知道! – rootsup

+0

@rootsup欢迎您。问题在于fadout被推送到动画队列并开始,并且fadein立即被推送到队列中,并且它也被启动。相反,您可以等待淡出动画完成。 – PSL