Jquery 如何在li元素之间有一个小的延迟来设置动画

Jquery 如何在li元素之间有一个小的延迟来设置动画,jquery,jquery-animate,html-lists,Jquery,Jquery Animate,Html Lists,我希望每个li元素在屏幕上移动,一个接一个,每个元素之间有一个小的延迟 每个li元素的动画应该在上一个元素完成动画之前开始 以下是我目前掌握的情况: $("#navright ul li:nth-child(1)").animate({marginLeft:'115px'},500).delay(150); $("#navright ul li:nth-child(2)").animate({marginLeft:'115px'},500).delay(150); $("#navrigh

我希望每个li元素在屏幕上移动,一个接一个,每个元素之间有一个小的延迟

每个li元素的动画应该在上一个元素完成动画之前开始

以下是我目前掌握的情况:

$("#navright ul li:nth-child(1)").animate({marginLeft:'115px'},500).delay(150);
$("#navright ul li:nth-child(2)").animate({marginLeft:'115px'},500).delay(150);    
$("#navright ul li:nth-child(3)").animate({marginLeft:'115px'},500).delay(150);
$("#navright ul li:nth-child(4)").animate({marginLeft:'115px'},500);

基本上,你正在寻找的是一个渐进的延迟。这可以通过循环更好地实现(我的示例将使用jQuery的
.each()
方法)。一般的概念是以可控的方式增加延迟。我上面的评论适用于当前的4,但从缩放角度来看,通常不是一个好方法。它创造了一个几乎指数级的增长。下面的示例将总延迟加上初始延迟的三分之二作为延迟随时间增加的系数。原始代码唯一真正的问题是需要在调用
.animate()
之前调用
.delay()
。下面是我更新的示例

演示:

var d=150,系数=d/3*2;//将延迟增加原来延迟的三分之二
$(“#navright ul li”)。每个(函数(){
$(this).delay(d=d+factor).animate({marginLeft:'115px'},500);
})


不知道你的意思。你是在说这样的事吗?就这样。完美的请发帖,这样我就可以把它标记为正确答案了……与论坛网站不同,我们不使用“谢谢”或“感谢任何帮助”或签名。见”。