Canvas 是 HTML5 画布元素,可以使用 JavaScript 在上面绘制 2D 或 3D 图形。通过 Canvas,我们可以创建各种各样的动画效果。
下面我们来看一个简单的 Canvas 效果动画,并详细解析其中的代码。
<canvas id="myCanvas"></canvas>
首先,在 HTML 中添加一个空的 Canvas 元素,并设置 ID 为“myCanvas”。
const canvas = document.getElementById("myCanvas");
const ctx = canvas.getContext("2d");
然后,在 JavaScript 中获取 Canvas 元素,并获取上下文对象(context),通过这个对象可以调用 Canvas API 来绘制各种图形。
let x = 100;
let y = 100;
let radius = 50;
let dx = 5;
let dy = 2;
function drawCircle() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.beginPath();
ctx.arc(x, y, radius, 0, Math.PI * 2, false);
ctx.fillStyle = "red";
ctx.fill();
x += dx;
y += dy;
if (x + radius > canvas.width || x - radius < 0) {
dx = -dx;
}
if (y + radius > canvas.height || y - radius < 0) {
dy = -dy;
}
}
setInterval(drawCircle, 10);
接下来,定义一些变量来控制画布上的圆形的位置、大小和移动速度等等。
然后,定义一个绘制圆形的函数 drawCircle(),首先清除画布中原有的内容,然后使用 beginPath() 方法开始新路径,通过 arc() 方法绘制圆形。在绘制圆形前,需要设置一些属性,比如填充颜色(fillStyle)。将圆形的位置向右和向下移动,如果触碰到了画布的边界,就改变移动方向。最后,使用 setInterval() 方法来定时执行 drawCircle() 函数,从而创造出动画效果。
这里使用 setInterval() 方法来定时执行函数,可以控制动画的帧数和流畅度。一般来说,帧数越高,动画越流畅,但同时也会占用更多的 CPU 资源。在设置帧数时需要平衡好动画效果和性能。
以上就是一个简单的 Canvas 效果动画,通过调整开始绘制圆形的位置、大小和移动速度等参数,可以创造出各种各样的动画效果。