Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.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
Javascript 如何通过暂停链接jQuery动画?_Javascript_Jquery_Animation_Jquery Animate - Fatal编程技术网

Javascript 如何通过暂停链接jQuery动画?

Javascript 如何通过暂停链接jQuery动画?,javascript,jquery,animation,jquery-animate,Javascript,Jquery,Animation,Jquery Animate,大家好,我正在用jQuery做一个简单的链式动画,在每一帧之间有一个暂停(setTimeout) 假设每个div的动画持续时间为3500。我想控制动画中每个不透明度淡入淡出之间的持续时间。比如说在第一段和第二段之间,持续时间是5秒,在第二帧和第三帧之间可能是10秒 你会怎么做 现行代码 $('#blue').animate({ opacity: '1' }, 3500, function(){ // Need 5 sec pause her

大家好,我正在用jQuery做一个简单的链式动画,在每一帧之间有一个暂停(setTimeout)

假设每个div的动画持续时间为3500。我想控制动画中每个不透明度淡入淡出之间的持续时间。比如说在第一段和第二段之间,持续时间是5秒,在第二帧和第三帧之间可能是10秒

你会怎么做

现行代码

$('#blue').animate({
            opacity: '1'
      }, 3500, function(){

        // Need 5 sec pause here            

        $('#blue').fadeOut('fast');
        $('#orange').animate({
            opacity: '1'
            }, 3500, function(){

              // Need a 10 sec pause here

              $('#orange').fadeOut('fast');
              $('#green').animate({
              opacity: '1' }, 3500);

            });
      });

您可以将jQuery淡出/淡出方法与回调一起使用

有关更多信息,请参阅

但本质上是,

$(".myClass").fadeOut(1000, function() {
    //fadeOut complete
});
第一个参数是直到它完全消失的时间长度(毫秒)。在该持续时间过后,将触发回调。因此,您可以安全地假设,当回调触发时,您所需的等待时间已经完成


fadeIn的语法也一样,但我建议阅读我提供的链接。它将对其进行更详细的解释。

您可以将jQuery fadeOut/fadeIn方法用于回调

有关更多信息,请参阅

但本质上是,

$(".myClass").fadeOut(1000, function() {
    //fadeOut complete
});
第一个参数是直到它完全消失的时间长度(毫秒)。在该持续时间过后,将触发回调。因此,您可以安全地假设,当回调触发时,您所需的等待时间已经完成


fadeIn的语法也一样,但我建议阅读我提供的链接。它将更详细地解释它。

这正是.delay()的用途()。它允许您为单个元素编写优雅的动画链,如下所示:

$( "#foo" ).slideUp( 300 ).delay( 800 ).fadeIn( 400 );
请注意,您仍然需要使用回调来启动其他对象的动画

在您的情况下,应该是这样(未经测试):


这正是.delay()的作用。它允许您为单个元素编写优雅的动画链,如下所示:

$( "#foo" ).slideUp( 300 ).delay( 800 ).fadeIn( 400 );
请注意,您仍然需要使用回调来启动其他对象的动画

在您的情况下,应该是这样(未经测试):

这就是
delay()
queue()
的作用:

$('#blue').animate({opacity: '1'}, 3500).delay(5000).queue(function() {
    $(this).fadeOut('fast');
    $('#orange').animate({opacity: '1'}, 3500).delay(10000).queue(function() {
        $(this).fadeOut('fast');
        $('#green').animate({opacity: '1'}, 3500);
    });
});
这就是
delay()
queue()
的作用:

$('#blue').animate({opacity: '1'}, 3500).delay(5000).queue(function() {
    $(this).fadeOut('fast');
    $('#orange').animate({opacity: '1'}, 3500).delay(10000).queue(function() {
        $(this).fadeOut('fast');
        $('#green').animate({opacity: '1'}, 3500);
    });
});

嘿@PSL谢谢!第一个看起来像是我需要的第二个,卡恩做的动画太快了,似乎没有正确地遵循持续时间?嘿@PSL谢谢!第一个似乎是我需要的第二个和kayen做的动画太快,似乎没有正确地遵循持续时间?谢谢,这正是我需要知道的:)谢谢,这正是我需要知道的:)谢谢你的解释+谢谢你的解释+1.