JavaScript Velocity不会等到动画结束

时间:2018-02-23 17:42:02

标签: javascript animation timing

我正在使用带有VelocityJS库的JavaScript来为我的屏幕上的指针设置动画。问题是,我得到的输入是我必须经常旋转指针的程度,而不是处理它。

我现在的代码是:

function changePointer(msg){
    kmh = parseInt(msg.payloadString);
    degreesToTurnTo = Math.round(kmh * stapgrote);
    $("#pointer").velocity({
        rotateZ: degreesToTurnTo+"deg"
    });
    console.log(degreesToTurnTo);
}

该函数每秒调用约5次,但1个动画已经需要大约半秒钟。

所以我的问题是,如何制作if语句来检查前一个动画是否准备就绪(这样我可以在完成后再次更新它)。或者我如何取消当前动画并开始下一个动画(因为我正在制作速度表,所以这个方法会更受欢迎)。

提前致谢!

亲切的问候, Mats de Waard

1 个答案:

答案 0 :(得分:0)

来自:http://velocityjs.org/#stop

/* Prior Velocity call. */
$element.velocity({ opacity: 0 });
/* Later, midway through the call... */
$element
    /* Stop animating opacity. */
    .velocity("stop")
    /* Animate opacity back to 1. */
    .velocity("reverse");

所以在你的情况下如下:

$("#pointer")
.velocity("stop")
.velocity({
    rotateZ: degreesToTurnTo+"deg"
});