Jquery在其他完成后动画div

时间:2014-01-13 13:59:04

标签: jquery html jquery-animate slide

我有两个div从左边开始动画,此刻它们同时进入另一个下方,虽然我想在第一次完成后立即开始第二次。

下面是代码:

$("#flyin1").animate({
    left: $("#flyin1").parent().width() / 2 - $("#flyin1").width() / 2
}, 2000);

$("#flyin2").animate({
    left: $("#flyin2").parent().width() / 2 - $("#flyin2").width() / 2
}, 2000);

任何帮助都会很棒!

4 个答案:

答案 0 :(得分:2)

$("#flyin1").animate({
    left: $("#flyin1").parent().width() / 2 - $("#flyin1").width() / 2
}, 2000, function() {
    $("#flyin2").animate({
        left: $("#flyin2").parent().width() / 2 - $("#flyin2").width() / 2
    }, 2000);
});

将它放在第三个参数(完整)下,如图here.所示你也可以这样做:

$("#flyin1").animate({
    left: $("#flyin1").parent().width() / 2 - $("#flyin1").width() / 2
}, {duration:2000}, {complete:function() {
    $("#flyin2").animate({
        left: $("#flyin2").parent().width() / 2 - $("#flyin2").width() / 2
    }, 2000);}
});

答案 1 :(得分:1)

jQuery的animate()函数总共支持4个参数。您会注意到其中一个可以是动画完成时调用的函数:

  

complete
类型:Function()
一个动画播放后调用的函数   完整。

您可以使用完整的回调函数:

$("#flyin1").animate({
    left: $("#flyin1").parent().width() / 2 - $("#flyin1").width() / 2
}, 2000, function() {  
    $("#flyin2").animate({
        left: $("#flyin2").parent().width() / 2 - $("#flyin2").width() / 2
    }, 2000);
});

答案 2 :(得分:1)

您可以使用完整的jquery animate。

更新:隐藏文档准备好的元素

$(document).ready(function(){
$("#flyin2").hide();//hide second element
});


$("#flyin1").animate({
left: $("#flyin1").parent().width() / 2 - $("#flyin1").width() / 2
}, 2000,function(){
//on animation complete
$("#flyin2").show();//show second element
$("#flyin2").animate({
left: $("#flyin2").parent().width() / 2 - $("#flyin2").width() / 2
}, 2000);
});

答案 3 :(得分:0)

将函数参数添加到动画调用

$("#flyin1").animate({
    left: $("#flyin1").parent().width() / 2 - $("#flyin1").width() / 2
}, 2000, function() {
    $("#flyin2").animate({
        left: $("#flyin2").parent().width() / 2 - $("#flyin2").width() / 2
     }, 2000);
);