Set background fill, stroke, and opacity of HTML5 Canvas
canvas, html, javascript, jquery
Solution
Init()
{
var can = document.getElementById('myCanvas');
h = parseInt(document.getElementById("myCanvas").getAttribute("height"));
w=parseInt(document.getElementById("myCanvas").getAttribute("width"));
// get it's context
hdc = can.getContext('2d');
hdc.strokeStyle = 'red';
hdc.lineWidth = 2;
// Fill the path
hdc.fillStyle = "#9ea7b8";
hdc.fillRect(0,0,w,h);
can.style.opacity = '0.2';
}
Be careful that `style.height` or `style.width` will not work with canvas.
Problem
I use the below code to set styles of `myCanvas`, but I am not able to set `fillStyle`. Yet, `strokeStyle` and `lineWidth` is working fine. Could anyone please help with this? ``` Init() { var can = byId('myCanvas'); // get it's context hdc = can.getContext('2d'); hdc.strokeStyle = 'red'; hdc.lineWidth = 2; // Fill the path hdc.fillStyle = "#9ea7b8"; hdc.opacity = 0.2; hdc.fill(); } // And call the drawPoly function with coordinates. function drawPoly(coOrdStr) { var canvas = byId('myCanvas'); hdc.clearRect(0, 0, canvas.width, canvas.height); var mCoords = coOrdStr.split(','); var i, n; n = mCoords.length; hdc.beginPath(); hdc.moveTo(mCoords[0], mCoords[1]); for (i = 2; i < n; i += 2) { hdc.lineTo(mCoords[i], mCoords[i + 1]); } hdc.lineTo(mCoords[0], mCoords[1]); hdc.stroke(); } ```