上一篇: HTML5 新元素

下一篇: HTML5 内联 SVG

HTML5 Canvas

创建 Canvas 元素

首先,在 HTML 文件中创建一个 canvas 元素,并设置宽度和高度。

                <!DOCTYPE html>
                <html lang="en">
                <head>
                    <meta charset="UTF-8">
                    <meta http-equiv="X-UA-Compatible" content="IE=edge">
                    <meta name="viewport" content="width=device-width, initial-scale=1.0">
                    <title>Canvas 教程</title>
                </head>
                <body>
                    <canvas id="myCanvas" width="600" height="400"></canvas>
                </body>
                </html>
                

引入 JavaScript

在 HTML 文件内引入 JavaScript,用以操作 Canvas 元素。

                <script>
                // 编写 JavaScript 代码
                </script>
                

获取 Canvas 上下文

要开始绘制,需要获取 Canvas 的 2D 渲染上下文。

                const canvas = document.getElementById('myCanvas');
                const ctx = canvas.getContext('2d');
                

绘制图形

Canvas 支持多种图形,包括矩形、圆形、线条等。以下是一些基本的绘图示例。

绘制矩形

使用 fillRect(x, y, width, height) 方法绘制填充矩形。

                ctx.fillStyle = 'blue';
                ctx.fillRect(10, 10, 100, 50);
                

绘制圆形

使用 arc(x, y, radius, startAngle, endAngle, anticlockwise) 方法绘制圆形。

                ctx.beginPath();
                ctx.arc(200, 50, 40, 0, 2 * Math.PI);
                ctx.fillStyle = 'red';
                ctx.fill();
                ctx.closePath();
                

绘制线条

使用 moveTo(x, y)lineTo(x, y) 方法绘制线段。

                ctx.beginPath();
                ctx.moveTo(300, 10);
                ctx.lineTo(400, 60);
                ctx.strokeStyle = 'green';
                ctx.lineWidth = 5;
                ctx.stroke();
                ctx.closePath();
                

添加动画

使用 requestAnimationFrame() 方法创建简单的动画效果。

                let posX = 0;

                function draw() {
                    ctx.clearRect(0, 0, canvas.width, canvas.height); // 清除画布

                    // 绘制矩形
                    ctx.fillStyle = 'blue';
                    ctx.fillRect(posX, 10, 100, 50);

                    posX += 1; // 更新位置

                    requestAnimationFrame(draw); // 请求下一帧动画
                }

                draw(); // 开始绘制动画
                

这个教程仅介绍了 HTML5 Canvas 的基本概念和功能。Canvas 还有很多其他功能,如文本、图像、渐变等,可以让你在网页上创造出更丰富的视觉效果。通过学习和实践,你可以成为一个出色的 Canvas 开发者。