MDN说:
alpha:Boolean,指示画布是否包含Alpha通道。 如果设置为false,浏览器现在知道背景总是如此 不透明,可以加快透明内容和图像的绘制 然后
听起来很直接,但我仍然不太清楚这个属性到底在做什么。
它说"当错误时,浏览器知道背景总是不透明的"。现在,如果我稍后设置canvasElem.style.backgroundColor = "rgba(200,200,200,0.5)";
,我仍然会获得透明的画布背景,它仍会计算alpha。
答案 0 :(得分:1)
是的,这是非常直接的蔑视 在支持浏览器时(根据您链接到Chrome,Firefox和Opera的页面),这将创建一个没有像素可以具有透明度的上下文。
这意味着它将开始全黑,并且所有可能发生的alpha混合将针对这些第一个黑色完全不透明的像素。
所以这也意味着你无论如何也无法看到这种CSS背景颜色,这让我觉得你试过不支持的浏览器,或者你没有正确地调用它
ctx= canvas.getContext('2d', {alpha:false});
ctx.fillStyle= 'rgba(255,0,0,0.5)';
ctx.fillRect(0,0,50,50);

<canvas id=canvas></canvas>
&#13;