Estou usando JavaScript com a biblioteca VelocityJSpara animar um ponteiro na tela. O que acontece é que recebo minha entrada para quantos graus tenho que girar o ponteiro com mais freqüência do que ele pode processar.
O código que tenho agora é:
function changePointer(msg){
kmh = parseInt(msg.payloadString);
degreesToTurnTo = Math.round(kmh * stapgrote);
$("#pointer").velocity({
rotateZ: degreesToTurnTo+"deg"
});
console.log(degreesToTurnTo);
}
A função está sendo chamada cerca de 5 vezes por segundo, mas 1 animação já leva cerca de meio segundo.
Então, minha pergunta é: como posso fazer um ifdeclarações que verificam se a animação anterior está pronta (para que eu possa atualizá-la novamente quando terminar). Ou como posso cancelar a animação atual e começar a próxima (esse método seria o preferido, pois estou fazendo um velocímetro).
Desde já, obrigado!
Atenciosamente, Mats de Waard
Respostas:
0 para resposta № 1De: 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");
Então, no seu caso, algo como:
$("#pointer")
.velocity("stop")
.velocity({
rotateZ: degreesToTurnTo+"deg"
});