2

我的这个职位取决于动态价值。较短距离的动画应该更快但具有相同的加速度(速度),这是有道理的。但是,在 jquery 文档中,我只看到了一种定义持续时间的方法,这对很多事情都可以,但对其他事情却不行。我如何定义速度,所以如果值很小,持续时间也很小,如果值很长,那么持续时间很长。谢谢。

4

1 回答 1

2

由于jQuery动画只接受一个时间,你可以计算时间给你一个具体的速度:

time = pixels / desired pixels per second

因此,如果动画覆盖 200px 并且所需的速度为 100px / sec,那么您只需计算:

time = 200px / 100 px per sec = 2 sec = 2000ms

如果动画覆盖 40px,那么您将拥有:

time = 40px / 100 px per sec = 0.4 sec = 400ms

您还可以使用以下形式制作自己的 jQuery animate 版本,为您工作animate(properties, options)

jQuery.fn.speedAnimate = function(properties, options, val, rate) {
    options.duration = (val / rate) * 1000;
    return this.animate(properties, options);
}

以您希望val使用的任何单位(像素可能是最常见的)和rate单位/秒为单位。

于 2015-01-06T02:38:12.930 回答