3 つの透明度レベルがあるため、少なくとも 3 回ストロークする必要があります。次のようにグラデーションを透明にしますtGrad.addColorStop(0, "transparent");
。
そのままにして申し訳ありませんが、プロジェクトの構造を作成しました。目標を達成するのに役立つはずです。私の構造は次のようになります: http://jsfiddle.net/sadaf2605/JzbG2/
ヘルパー コード:
var canvas = document.getElementById('myCanvas');
var context = canvas.getContext('2d');
var context2 = canvas.getContext('2d');
var centerX = canvas.width / 2;
var centerY = canvas.height / 2;
var radius = 70;
//gradient for circle
var grad = context.createLinearGradient(50, 50, 150, 150);
grad.addColorStop(0, "#315164");
grad.addColorStop(1, "#55a1ce");
context.strokeStyle = grad;
context.lineCap = "round";
//drawing circle
context.beginPath();
context.arc(centerX, centerY, radius, 0, 2 * Math.PI, false);
context.lineWidth = 22;
context.stroke();
//circle ends
//gradient for straight line1
context.beginPath();
var t1Grad=context.createLinearGradient(50, 50, 150, 150);
t1Grad.addColorStop(0.3, "transparent");
t1Grad.addColorStop(1, "#55a1ce");
context.strokeStyle=t1Grad;
//drawing straight line1
context.moveTo(170, 35);
context.lineTo(170, 50);
context.stroke();
//gradient for straight line1
context.beginPath();
var t2Grad=context.createLinearGradient(50, 50, 150, 150);
t2Grad.addColorStop(0.3, "transparent");
t2Grad.addColorStop(1, "#55a1ce");
context.strokeStyle=t2Grad;
//drawing straight line1
context.moveTo(170, 35);
context.lineTo(170, 165);
context.stroke();