HTML Canvas上下文的保存/恢复方法不起作用。
有一个简单的例子,在画布上画一个矩形,然后试图恢复以前的状态,这实际上不起作用。我做错了什么?
const canvas = document.getElementById('canvas');
const ctx = canvas.getContext('2d');
// Draw red rectangle
ctx.fillStyle = 'red';
ctx.fillRect(10, 10, 50, 50);
// Save the current state
ctx.save();
// Add blue rectangle
ctx.fillStyle = 'blue';
ctx.fillRect(70, 10, 50, 50);
// Restore the saved state
ctx.restore(); // this should remove blue rectangle
canvas {
border: 1px solid black
}
<canvas id="canvas" width="200" height="200"></canvas>
1条答案
按热度按时间0dxa2lsx1#
save方法存储绘制状态,这不一定包括绘制的形状。图纸状态为(如MDN所述):
保存到堆栈中的图形状态包括:
您可以通过再次绘制相同的蓝色方块来查看此操作。您会注意到颜色现在是红色,这意味着状态已恢复到其原始值。