jquery - 是否可以定义 jQuery 动画的速度而不是持续时间?

标签 jquery jquery-animate jquery-easing custom-scrolling

我的立场取决于动态值(value)。这是有道理的,较短的距离应该动画更快,但具有相同量的加速度(速度)。然而,在 jquery 文档中,我只看到一种定义持续时间的方法,这对于很多事情来说都可以,但对于其他事情来说则不然。我如何定义速度,以便如果值很小,持续时间也很小,如果值很长,那么持续时间也很长。谢谢。

最佳答案

由于 jQuery 动画只接受时间,因此您可以计算时间来给出具体的速度:

time = pixels / desired pixels per second

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

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

如果动画覆盖 40 像素,那么您将:

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 可以采用单位/秒。

关于jquery - 是否可以定义 jQuery 动画的速度而不是持续时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27791216/

相关文章:

javascript - HTML5 旋转/动画背景

jquery - 我怎样才能使用jquery-ui的toggleClass更好地动画化它?

javascript - jquery Accordion 动画没有方法

jquery - 如何检查是否定义了特定的 jquery-easing 方法?

Jquery 代码可以在 JsFiddle 上运行,但不再可以在我的电脑上运行

javascript - 在查询中调用另一个 javascript 的类方法

javascript - 如何禁用特定于电子邮件客户端(gmail、outlook)的电子邮件中的自动内容

javascript - 如何使用 jQuery 创建时区?

javascript - 使用 jquery 显示和隐藏叠加层

javascript - 如何将输入文本设置为框