Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Jquery在另一个元素的动画完成之前启动一个元素的动画_Jquery_Animation - Fatal编程技术网

使用Jquery在另一个元素的动画完成之前启动一个元素的动画

使用Jquery在另一个元素的动画完成之前启动一个元素的动画,jquery,animation,Jquery,Animation,我有几个div,我想用jQuery制作动画。但是,我想在上一个div的动画处于中间时开始制作下一个div的动画。请帮助我们如何获得想要的效果。我有以下代码,但不起作用: $("#box1").animate({opacity:0},{ duration: 800 }).delay(400).animate({opacity:1},{duration: 800 }); $("#box2").animate({opacity:0},{ duration: 800 }).delay(400).

我有几个div,我想用jQuery制作动画。但是,我想在上一个div的动画处于中间时开始制作下一个div的动画。请帮助我们如何获得想要的效果。我有以下代码,但不起作用:

$("#box1").animate({opacity:0},{ duration: 800 }).delay(400).animate({opacity:1},{duration: 800 });
    $("#box2").animate({opacity:0},{ duration: 800 }).delay(400).animate({opacity:1},{duration: 800 });
    $("#box3").animate({opacity:0},{ duration: 800 }).delay(400).animate({opacity:1},{duration: 800 });
    $("#box4").animate({opacity:0},{ duration: 800 }).delay(400).animate({opacity:1},{duration: 800 });

您可以向第二个div添加延迟:

$('div#first_div')。动画({…},1000);
$('div#second _div')。延迟(500)。动画({…},1000);
编辑:我看到您在问题中添加了一些代码,但我不确定您希望下一个div何时开始

重要的一点是,这四行中的每一行都是同时开始的,因此,通过在每行的开始处添加递增的延迟,您将获得所需的结果

在这个代码中,例如,当前一个框在淡出中间时,框将开始淡出:

$(“#box1”).fadeOut(800)、delay(400)、fadeIn(800);
$(“#box2”)。延迟(400)。淡出(800)。延迟(400)。淡出(800);
$(“#box3”)。延迟(800)。淡出(800)。延迟(400)。淡出(800);
$(“#box4”)。延迟(1200)。淡出(800)。延迟(400)。淡出(800);
(还要注意,在简单动画中,可以使用fadeIn/fadeOut而不是animate方法。)