HTML画布行多种颜色

时间:2018-10-09 21:57:41

标签: html canvas colors line

var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
ctx.beginPath();
ctx.moveTo(10, 10);
	for (var i=1; i<=6; i++) {
  		ctx.lineTo(110*i, 300*1);
  		ctx.strokeStyle = 'rgba(70, 144, 249, 0.1)';
  		ctx.stroke();
        
  		ctx.moveTo(10, 10);
        
	}
<!DOCTYPE html>
<html>
<body>

<canvas id="myCanvas" width="300" height="150" style="border:1px solid #d3d3d3;">
Your browser does not support the HTML5 canvas tag.</canvas>

</body>
</html>

嗨,我有两个问题。

1-当我的线条不透明时,线条似乎总是被复制到它们的顶部,从而使第一行具有多个不透明度,而最后只有我设置的一层不透明度。

2-我似乎无法使用不同颜色的线条。因为同样,即使当我应用第二种颜色时,它也位于每一行的顶部...

你能帮我吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

问题是您从循环外部开始路径。第一行绘制6次,最后一行仅绘制一次。在循环内移动beginPathmoveTo可解决您的问题。

var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");

for (var i = 1; i <= 6; i++) {
  ctx.beginPath();
  ctx.moveTo(10, 10);
  ctx.lineTo(110 * i, 300 * 1);
  ctx.strokeStyle = "rgba(70, 144, 249, 0.1)";
  ctx.stroke();

  ctx.moveTo(10, 10);
}
<canvas id="myCanvas" width="300" height="150" style="border:1px solid #d3d3d3;">
Your browser does not support the HTML5 canvas tag.</canvas>