Versuchen, einen Pulse-Effekt mit einem Leinwand-Objekt mit plain vanilla javascript zu erstellen. Jede Funktion scheint korrekt aufzurufen und alle meine Werte protokollieren richtig, aber aus irgendeinem Grund passiert nichts, wenn die Funktion drawBall() in der Funktion ballShrink() aufgerufen wird. Ich erwarte, dass es zum Schrumpfen animiert, aber das tut es nicht. ballRadius reduziert, aber keine Animation. Ich habe meinen Code hier und ein JSFiddle hier https://jsfiddle.net/96hthyw0/Pulse-Effekt mit Vanille JavaScript
function draw() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
drawBall();
}
function ballGrow() {
ballRadius += 1;
drawBall();
if (ballRadius === 20) {
clearInterval(ballGrowInterval);
ballShrinkInterval = setInterval(ballShrink, 100);
}
}
function ballShrink() {
ballRadius -= 1;
drawBall();
if (ballRadius === 0) {
clearInterval(ballShrinkInterval);
}
}
function testInterval() {
ballGrowInterval = setInterval(ballGrow, 100);
}
testInterval();
draw();
Warum sind Sie nicht CSS3-Animationen verwenden? Sie können dieses Verhalten mit nur ein paar Zeilen mit CSS –
Siehe z. Diese Seite für CSS-Spinner: http://tobiasahlin.com/spinkit/ –