Jquery队列排序动画

时间:2014-10-09 04:44:20

标签: javascript jquery

我有以下代码显示幻灯片。我的问题是,在下一个(淡入)appaears之前,一个元素没有完全隐藏(淡出),导致我必须用CSS修复它,这不是理想的场景..这就是代码:

setInterval(function() { 
  $('#slides > li:first')
    .fadeOut(500)
    .next()
    .fadeIn(500)
    .end()
    .appendTo('#slidelist');
},  2000);

我尝试了以下但没有成功:

setInterval(function() { 
  $('#slides > li:first')
    .fadeOut(500).delay(500)
    .next()
    .fadeIn(500)
    .end()
    .appendTo('#slidelist');
},  2000);

任何想法如何在下一个元素淡入之前让元素完全消失?

1 个答案:

答案 0 :(得分:0)

如果希望在前一个fadeOut完成后启动fadeIn,请使用callback函数参数执行fadeIn。回调函数将在第一个动作(fadeOut)完成后执行。

这里有2个div的例子 - 1个淡出,然后1个淡入。我在不透明度上使用了animate函数,它与fadeIn / fadeOut基本相同。

动画:http://api.jquery.com/animate/
FadeOut:http://api.jquery.com/fadeout/
淡出:http://api.jquery.com/fadein/

jsfiddle:http://jsfiddle.net/biz79/du9utty8/

var $divs = $('div');

$divs.eq(0).animate( {"opacity":"0"},1000 , function() {
    $divs.eq(1).animate( { "opacity":"1" },1000)
})

希望您可以修改代码以应用此解决方案。如果没有,请发一个小提琴告诉我,我可以帮助您调整代码。