Мне нужно, чтобы мой текстовый оверлей был другого цвета и имел значение globalAlpha, отличное от холста. Однако textOverlay
наследует свойство от холста, как я могу предотвратить это и установить разные свойства для каждого?
Пример кода JS:
function draw(cordOne, cordTwo, cordThree, n) {
let canvas = document.getElementById("canvas");
let textOverlay = document.getElementById("text");
if (canvas.getContext) {
let context = canvas.getContext("2d");
let textOverlay = canvas.getContext("2d");
context.globalAlpha = 0.1;
context.beginPath();
context.moveTo(cordOne[0], cordOne[1]);
context.lineTo(cordTwo[0], cordTwo[1]);
context.lineTo(cordThree[0], cordThree[1]);
context.closePath();
let centerX = (cordOne[0] + cordTwo[0] + cordThree[0]) / 3;
let centerY = (cordOne[1] + cordTwo[1] + cordThree[1]) / 3;
textOverlay.font = "20px Arial Black";
textOverlay.fillText(n, centerX, centerY);
context.lineWidth = 4;
context.strokeStyle = "#666666";
context.stroke();
// the fill color
context.fillStyle = "#22234";
context.fill();
}
}
draw([35, 49], [168, 49], [168, 128], 1);
draw([35, 49], [140, 49], [140, 115], 2);
HTML:
<html>
<body>
<div class="stack">
<canvas id="text" width="1000" height="700">
</canvas>
<canvas id="canvas" width="1000" height="700">
</canvas>
</div>
</body>
</html>
css:
.stack {
position: relative;
}
.stack canvas {
position: absolute;
left: 0;
top: 0;
}