Canvas是HTML5提供的位图绘图API,通过元素和getContext('2d')获取上下文绘图,支持矩形、路径、动画等,需手动清空画布,适用于高性能图形渲染。
Canvas 是 HTML5 提供的一个绘图 API,它通过一个 `canvas>` 元素提供一块“空白画布”,JavaScript 可以在上面用代码绘制图形、图像、文字,甚至实现流畅的动画。它不是 DOM 元素集合,而是一块位图区域——一旦画上去,就只是像素,没有对象概念(不像 SVG 那样保留图形结构)。
Canvas 本身只是容器,真正绘图靠的是它的 2D 渲染上下文(`getContext('2d')`):
const canvas = document.getElementById('myCanvas');
const ctx = canvas.getContext('2d');
ctx 对象调用,比如 ctx.fillRect(10, 10, 100, 50) 画一个实心矩形Canvas 提供了简单直接的绘图方法,注意:多数图形需先“描边”或“填充”才会显示:
ctx.beginPath();
ctx.arc(100, 100, 30, 0, Math.PI * 2); // 圆心(100,100),半径30
ctx.fillStyle = 'red';
ctx.fill();
Canvas 动画本质是「清空 → 绘制新帧 → 重复」,推荐用 `requestAnimationFrame` 替代 `setInterval`,更流畅且省资源:
function draw() { /* 清空 + 绘制当前帧 */ }
requestAnimationFrame(draw) 实现循环x += 2),每次重绘时使用更新后的值Canvas 能力远不止基础图形: