Javascript 我应该如何使用`<;画布>;`?

Javascript 我应该如何使用`<;画布>;`?,javascript,canvas,Javascript,Canvas,我在这一页上已经有三个上下文。我这里有上下文2中的这一部分,它给一些文本添加了阴影。但它也给context2中的所有其他东西带来了阴影,有没有一种方法可以在上下文中隔离内容?或者我应该为这篇文章创建另一个上下文,为我想做的下一件事创建另一个上下文 drawArc(ctx2, 15, 30, "white", 0, 360); ctx2.fillStyle = "rgb(80,80,80)"; ctx2.font = '24px sans-serif'; ctx2.shadowColor = "g

我在这一页上已经有三个上下文。我这里有上下文2中的这一部分,它给一些文本添加了阴影。但它也给context2中的所有其他东西带来了阴影,有没有一种方法可以在上下文中隔离内容?或者我应该为这篇文章创建另一个上下文,为我想做的下一件事创建另一个上下文

drawArc(ctx2, 15, 30, "white", 0, 360);
ctx2.fillStyle = "rgb(80,80,80)";
ctx2.font = '24px sans-serif';
ctx2.shadowColor = "gray";
ctx2.shadowOffsetX = 2;
ctx2.shadowOffsetY = 2;
text = 'whateva';
ctx2.fillText(text, 50, 50);

您是否尝试在文本之前和绘制文本之前绘制所有内容设置阴影,然后绘制文本?

如果您为了特定的临时目的(如阴影)修改上下文,只需将临时上下文修改包装在context.save()和context.restore()中

然后,临时上下文更改将使用context.restore()自动反转

// save ctx2 in its current state
ctx2.save()

drawArc(ctx2, 15, 30, "white", 0, 360);
ctx2.fillStyle = "rgb(80,80,80)";
ctx2.font = '24px sans-serif';
ctx2.shadowColor = "gray";
ctx2.shadowOffsetX = 2;
ctx2.shadowOffsetY = 2;
text = 'whateva';
ctx2.fillText(text, 50, 50);

// return ctx2 to its pre-modified state
ctx2.restore();