Javascript 如何使文本在context.fillText中不透明

Javascript 如何使文本在context.fillText中不透明,javascript,html,css,canvas,Javascript,Html,Css,Canvas,我希望context.fillText没有透明度,而context.fillRect有一些透明度 出于某种原因,我可以使两者都透明或都不透明 结果是文本和背景颜色都具有相同的透明度您需要在写入第一个文本后重置所有内容。因为您可以在绘制或编写某些内容后设置fillStyle,所以它仍将填充该内容。所以,如果你想让你的东西在彼此之后绘制或书写,你需要重置一切,这样下一个fillStyle就不会改变它的fillStyle了。在编写第一个文本后,需要使用context.beginPath()。以下是您的

我希望
context.fillText
没有透明度,而
context.fillRect
有一些透明度

出于某种原因,我可以使两者都透明或都不透明


结果是文本和背景颜色都具有相同的透明度

您需要在写入第一个文本后重置所有内容。因为您可以在绘制或编写某些内容后设置fillStyle,所以它仍将填充该内容。所以,如果你想让你的东西在彼此之后绘制或书写,你需要重置一切,这样下一个fillStyle就不会改变它的fillStyle了。在编写第一个文本后,需要使用
context.beginPath()
。以下是您的代码更正:

context.font = '20pt Calibri';
context.fillStyle = 'rgba(225,225,225,0.5)';
var width = context.measureText(message2).width;
context.fillRect(xIndent, yIndent+100, width, 60);

context.fillStyle = 'rgba(255,85,0,1.0)';
context.fillText(message3, xIndent, yIndent+100);

每次要绘制或编写其他内容时,最好使用
context.beginPath()
。。。。我希望这有帮助……

这段代码的结果是什么?两者都是相同的透明度(0.5)您是否在某个地方设置了globalAlpha。尝试在代码之前放置
context.globalAlpha=1
。我无法在FF43上重新生成您的问题。你可以创建一个小提琴,或者一个代码片段来显示你的问题吗?我也不能在Chrome47上重现你的问题
context.font = '20pt Calibri';
context.fillStyle = 'rgba(225,225,225,0.5)';
var width = context.measureText(message2).width;
context.fillRect(xIndent, yIndent+100, width, 60);

context.beginPath();
context.fillStyle = 'rgba(255,85,0,1.0)';
context.fillText(message3, xIndent, yIndent+100);