Canvas 中使用样式与颜色通过两种属性设置:
CanvasRenderingContext2D.fillStyle
属性用于设置填充图形的颜色、渐变或模式。
context.fillStyle = color || gradient || pattern;
fillStyle
需要在 fillRect()
之前设置,可以理解为,先选好颜色再画图(就像画画要先选好画笔颜色才能开始画图)。
<canvas id="canvas"></canvas>
const canvas = document.getElementById('canvas');const ctx = canvas.getContext('2d');ctx.fillStyle = 'blue';ctx.fillRect(10, 10, 100, 100);
function draw() {const ctx = document.getElementById('canvas').getContext('2d');for (let i = 0; i < 6; i++) {for (let j = 0; j < 6; j++) {ctx.fillStyle ='rgb(' + Math.floor(255 - 42.5 * i) + ',' + Math.floor(255 - 42.5 * j) + ',0)';ctx.fillRect(j * 25, i * 25, 25, 25);}}}
CanvasRenderingContext2D.strokeStyle
属性用于设置笔触的颜色、渐变或模式。
context.strokeStyle = color || gradient || pattern;
⚠️ 注意:一旦您设置了
strokeStyle
或者fillStyle
的值,那么这个新值就会成为新绘制的图形的默认值。如果你要给每个图形上不同的颜色,你需要重新设置fillStyle
或strokeStyle
的值。
<canvas id="canvas"></canvas>
var canvas = document.getElementById('canvas');var ctx = canvas.getContext('2d');ctx.strokeStyle = 'blue';ctx.strokeRect(10, 10, 100, 100);
function draw() {const ctx = document.getElementById('canvas').getContext('2d');for (let i = 0; i < 6; i++) {for (let j = 0; j < 6; j++) {ctx.strokeStyle ='rgb(0,' + Math.floor(255 - 42.5 * i) + ',' + Math.floor(255 - 42.5 * j) + ')';ctx.beginPath();ctx.arc(12.5 + j * 25, 12.5 + i * 25, 10, 0, Math.PI * 2, true);ctx.stroke();}}}