我试图在画布上画两条平行线,但后者的属性似乎覆盖了前者.请建议可能是错误的:
<html>
<head>
<script type="application/javascript">
function draw() {
var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
// draw a 10 pix green line
ctx.strokeStyle='#00cc00';
ctx.linewidth=10;
ctx.moveto(100,0);
ctx.lineto(100,1000);
ctx.stroke();
// draw a 20 pix red line
ctx.strokeStyle='#cc0000';
ctx.linewidth=20;
ctx.moveto(140,0);
ctx.lineto(140,1000);
ctx.stroke();
}
</script>
</head>
<body onload="draw()">
<div><canvas id="canvas" width="1000" height="1000"></canvas></div>
</body>
</html>
解决方法
在绘制每行之前调用ctx.beginPath.当进行强力冲击呼叫时,第一行仍然是当前路径的一部分,因此将以新颜色再次绘制.