Javascript 如何在jQuery中以相同的速度设置每个元素的动画?

Javascript 如何在jQuery中以相同的速度设置每个元素的动画?,javascript,jquery,animation,Javascript,Jquery,Animation,我有简单的动画 $(element).animate({ left: rand_value() + "px" }, 5000, "linear"); 但是有一个小问题。从A点到B点的动画持续时间为5秒。但我想以相同的速度从A点到B点为每个元素制作动画,而不依赖于时间。我不知道该怎么做 例如: 起点是0,终点是1000 ElemB:srart点为0,终点为200 ElemA和ElemB的速度必须相等,~10px/秒。这意味着动画的持续时间不同。这可能会有帮助: var rand =

我有简单的动画

$(element).animate({
    left: rand_value() + "px"
}, 5000, "linear");
但是有一个小问题。从A点到B点的动画持续时间为5秒。但我想以相同的速度从A点到B点为每个元素制作动画,而不依赖于时间。我不知道该怎么做

例如:

  • 起点是0,终点是1000
  • ElemB:srart点为0,终点为200
ElemA和ElemB的速度必须相等,~10px/秒。这意味着动画的持续时间不同。

这可能会有帮助:

var rand = rand_value();
$(element).animate({
    left: rand + "px"
}, 100*rand, "linear");

这就是为什么这是有意义的:
speed=distance/time
,因此
10px/sec=rand/time
,因此
0.01px/毫秒=rand/time
,从而
time=rand/0.01
等于
time=rand*100
。这与
.animate(…)
以毫秒为单位持续时间的事实是一致的。

好的,谢谢你的想法JCOC611 有适合我的解决办法

var rand = rand_value();
var multiplier = 3; // multiplier, to decrease animation speed
$(element).animate({
    left:  rand +"px)"
}, rand * multiplier, "linear");

这样,每个动画的速度都是相等的,并且它的速度可以用乘法器控制。

linear应该在相同的时间间隔内制作动画,你能给我们演示一下吗?