用渐变清除画布

而不是使用 clearRect 使所有像素透明,你可能想要一个背景。

用渐变清除

// create the background gradient once
var bgGrad = ctx.createLinearGradient(0,0,0,canvas.height);
bgGrad.addColorStop(0,"#0FF");
bgGrad.addColorStop(1,"#08F");

// Every time you need to clear the canvas
ctx.fillStyle = bgGrad;
ctx.fillRect(0,0,canvas.width,canvas.height);

这大约是 clearRect 0.004ms 的一半,但 400 万秒不应该对任何实时动画产生负面影响。 (时间会因设备,分辨率,浏览器和浏览器配置而有很大差异。时间仅供比较)