我的这个位置依赖于动态价值。有意义的是,较短的距离应该更快地动画,但具有相同的加速度(速度)的外观。但是,在jquery文档中,我只看到了一种定义持续时间的方法,这对很多事情都是好的,但对其他事情则没有。如何定义速度,如果值很小,持续时间也很小,如果值很长则持续时间很长。感谢。
答案 0 :(得分: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
你也可以使用animate(properties, options)
这种形式制作你自己的jQuery动画版本,这对你有用:
jQuery.fn.speedAnimate = function(properties, options, val, rate) {
options.duration = (val / rate) * 1000;
return this.animate(properties, options);
}
val
位于您关注的任何单位(像素可能最常见)和rate
单位/秒。