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