这是一种用动画绘制它的画布方式。一个关键部分是能够使用以下方法将生产线的端盖变圆context.lineCap = "round";:
var canvas = document.getElementById('myCanvas');
var context = canvas.getContext('2d');
var x = canvas.width / 2;
var y = canvas.height / 2
var radius = 50;
var startAngle = (Math.PI / 180) * -90
var endAngle = 180
context.lineWidth = 15;
context.lineCap = "round";
var ctr = -90;
var clr = setInterval(function () {
context.clearRect(0, 0, 300, 150); // clear canvas
context.beginPath();
context.arc(x, y, radius, startAngle, (Math.PI / 180) * ctr, false);
context.stroke();
ctr++;
if (ctr == endAngle) clearInterval(clr)
}, 10)Run Code Online (Sandbox Code Playgroud)
canvas {
border:1px solid #999;
}Run Code Online (Sandbox Code Playgroud)
<canvas id="myCanvas" width="300" height="150"></canvas>Run Code Online (Sandbox Code Playgroud)