jQuery交替运行动画

jQuery交替运行动画,jquery,jquery-animate,Jquery,Jquery Animate,我有两个动画: $("#div1").animate({scrollTop:$("#div1").width()},1000); 这一个动画将div滚动到最底部的点。 而第二个 $("#div1").animate({scrollTop:0},1000); 将其设置回顶部的动画 现在,我想交替运行这些动画,就像css动画具有交替模式一样。这意味着一旦第一个动画完成,第二个动画开始,第二个动画完成,第一个动画开始,以此类推 在jQuery中有什么方法可以做到这一点吗?使它们成为相互无限调用的递

我有两个动画:

$("#div1").animate({scrollTop:$("#div1").width()},1000);
这一个动画将div滚动到最底部的点。 而第二个

$("#div1").animate({scrollTop:0},1000);
将其设置回顶部的动画

现在,我想交替运行这些动画,就像css动画具有交替模式一样。这意味着一旦第一个动画完成,第二个动画开始,第二个动画完成,第一个动画开始,以此类推


在jQuery中有什么方法可以做到这一点吗?

使它们成为相互无限调用的递归函数:

function goDown() {
$("#div1").animate({scrollTop:$("#div1").width()},1000,function(){goUp()});
}

function goUp() {
$("#div1").animate({scrollTop:0},1000,function(){goDown()});
}

调用任意一个函数开始疯狂

只有一个问题,我觉得很奇怪,如果你真的使用它(你需要将scrollTop更改为scrollLeft),是不是一个方向的动画更快,另一个方向的动画更慢?向下一个很快(速度),我想你可能用$(“#div1”).width()超出了宽度。我听说它走了两倍远。如果是动画的这一部分,只需将速度更快的动画的时间设置为2000而不是1000;这是我的懒汉的方法。我不是这么说的。我的意思是一个方向是快,另一个方向是慢。这就是我的意思,动画越快,因为它试图在1000毫秒内移动两倍远。如果你给它更多的时间,它将以与另一个相同的速度运行,那么它们都应该运行两倍的速度,如果t运行两倍的速度,默认情况下。