jquery 没有持续时间的动画

jquery animation with no duration

我试图在不设置持续时间的情况下访问 jQuery 动画的值。 (但需要持续时间 属性 来告诉动画我想要多少步)。其实我不想做任何动画,我只想 jQuery 计算最小值和最大值之间的值。我不自己计算它们的原因是我想利用 jQuery 的缓动和 jQuery 缓动插件

的缓动
var min = 0,
    max = 50,
    steps = 20,
    values_arr = [];

$({value: min}).animate({value: max}, {
    duration: steps, 
    step: function (v) {values_arr.push(v)}
})

有什么办法可以不等待动画,而是立即获取所有值?

您可以像这样直接调用 ease 函数:

$.easing.easeInQuad(null, elapsedTime, initialValue, changeAmount, duration);

只需将 elapsedTime 从 0 更改为持续时间即可获得所需的值。请注意,您传递的是找零金额,而不是目标值。

根据您的数据,您可以执行以下操作:

var min = 0,
    max = 50,
    steps = 20,
    values_arr = [];


for(var i = 0; i < steps; i++){
    values_arr.push($.easing.easeInQuad(null, i, min, max, steps));
}