Javascript 一个元素动画后如何延迟?
我有一个幻灯片,一些项目和图像通过jquery animate进入我的幻灯片,这是我的代码: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
$("#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)
})
});