Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.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 一个元素动画后如何延迟?_Javascript_Jquery_Jquery Animate_Slideshow - Fatal编程技术网

Javascript 一个元素动画后如何延迟?

Javascript 一个元素动画后如何延迟?,javascript,jquery,jquery-animate,slideshow,Javascript,Jquery,Jquery Animate,Slideshow,我有一个幻灯片,一些项目和图像通过jquery animate进入我的幻灯片,这是我的代码: $("#item-1").animate({left:100},1000,function(){ $("#item-2").animate({left:250},2000, function(){ //I want below Item come with a long delay, I mean a delay after #item-2 $("#item-3").ani

我有一个幻灯片,一些项目和图像通过jquery animate进入我的幻灯片,这是我的代码:

$("#item-1").animate({left:100},1000,function(){
   $("#item-2").animate({left:250},2000, function(){
      //I want below Item come with a long delay, I mean a delay after #item-2
      $("#item-3").animate({left:100},1250)
   })
});

如何进行延迟?

对于以毫秒为单位指定的延迟,请使用
setTimeout

$("#item-1").animate({left:100},1000,function(){
   $("#item-2").animate({left:250},2000, function(){
      setTimeout(function(){
          $("#item-3").animate({left:100},1250)
      }, 2000);
   })
});
setTimeout
基本上说:在指定的时间量(第二个参数)之后执行此功能(第一个参数)


使用jQuery setTimeOut函数实现:

$(“#item-1”)。动画({left:100},1000,function(){
$(#item-2”)。动画({left:250},2000,function(){
//我希望下面的项目延迟很长时间,我是指第2项之后的延迟
//特定时间后触发功能。
setTimeout(函数(){
$(#item-3”).animate({left:350},1250)
}, 2000);      
})
});
div{
颜色:红色;
位置:绝对位置;
}

一
二

三个jQuery有一个方法来处理这个问题,特别是与动画队列相关的:

工作示例(在我的控制台中)如下:


您可以使用jQuery setTimeout函数并尝试。您必须包装
$(“#item-3”)。使用
setTimeout()调用动画({left:100},1250)
,当前您面临的问题是什么?“我觉得它应该可以工作得很好。”Jai请阅读我在代码中的评论,它工作得很好,我以前不知道。谢谢,曼诺,没问题。快速提示-将
2000
的值放入一个变量中,以使代码更易于管理。例如,如果必须更改第2项动画的持续时间,则需要在代码的两部分中进行更改。使用一个变量,它只是一个部分。
$("#item-1").animate({left:100},1000,function(){
   $("#item-2").animate({left:250},2000, function(){
      //I want below Item come with a long delay, I mean a delay after #item-2
      $("#item-3").delay(2000).animate({left:100},1250)
   })
});