使用JavaScript的脉冲效果

使用JavaScript的脉冲效果,javascript,canvas,Javascript,Canvas,尝试使用普通javascript使用画布对象创建脉冲效果。每个函数似乎都在正确调用,并且我的所有值都记录正确,但是由于某种原因,在ballShrink()函数中调用trablell()函数时,什么也没有发生。我希望它的动画缩小,但它没有。ballRadius正在减小,但未发生动画。我这里有我的代码,这里有一个JSFIDLE 问题是您没有清除上一个图形,而只是在现有图形的基础上添加新图形。这是一个更新的提琴:但简而言之,我所做的只是将您的ballShrink函数更改为: function ball

尝试使用普通javascript使用画布对象创建脉冲效果。每个函数似乎都在正确调用,并且我的所有值都记录正确,但是由于某种原因,在ballShrink()函数中调用trablell()函数时,什么也没有发生。我希望它的动画缩小,但它没有。ballRadius正在减小,但未发生动画。我这里有我的代码,这里有一个JSFIDLE


问题是您没有清除上一个图形,而只是在现有图形的基础上添加新图形。这是一个更新的提琴:但简而言之,我所做的只是将您的
ballShrink
函数更改为:

function ballShrink()   {
  ballRadius -= 1;
  draw(); // clear canvas - note you could add this to ball grow too
  drawBall();
  if (ballRadius === 0) {
    clearInterval(ballShrinkInterval);
  }
}

问题是您没有清除上一个图形,而只是在现有图形的基础上添加新图形。这是一个更新的提琴:但简而言之,我所做的只是将您的
ballShrink
函数更改为:

function ballShrink()   {
  ballRadius -= 1;
  draw(); // clear canvas - note you could add this to ball grow too
  drawBall();
  if (ballRadius === 0) {
    clearInterval(ballShrinkInterval);
  }
}

为什么不使用CSS3动画?使用CSSSE只需几行就可以实现此行为。例如,CSS微调器的此页面:为什么不使用CSS3动画?你可以用CSSSee只需几行就可以做到这一点。例如,这个CSS微调器页面:太棒了!谢谢你,温豪斯。现在说得通了,太棒了!谢谢你,温豪斯。现在有道理了。