【发布时间】:2015-12-09 21:59:58
【问题描述】:
我对画布以及如何创建圆形进度条进行了一些网络搜索,我得到了这个。我对在网上找到的代码片段进行了一些更改,但我无法再次重新加载循环路径。通过重新加载,我的意思是,当圆圈已满(一个完美的圆圈)时,我想再次绘制它。换句话说,我想在一个完整的旋转完成后再次重复绘制圆圈的过程。当我的变量触发器大于 100 时,我试图清除整个画布,但没有成功。有什么想法吗?
这是代码
function draw() {
var c=document.getElementById("prog");
var ctx=c.getContext("2d");
var time = 0;
var start = 4.72;
var cw = ctx.canvas.width;
var ch = ctx.canvas.height;
var diff;
function justdoit(){
diff = ((time / 100) * Math.PI*2*10);
ctx.clearRect(0, 0, cw, ch);
ctx.lineWidth = 10;
ctx.fillStyle = '#09F';
ctx.strokeStyle = "#09F";
ctx.textAlign = 'center';
ctx.fillText( time+'s', cw*.5, ch*.5+2, cw);
ctx.beginPath();
ctx.arc(75, 75, 30, start, diff/10+start, false);
ctx.stroke();
if(trigger >= 100){
ctx.clearRect(0, 0, cw, ch);
}
time++;
}
var trigger = setInterval(justdoit, 1000);
}
<button onclick="draw()"> draw </button>
<canvas id="prog"></canvas>
函数draw在一个带有onclick="draw()"属性的按钮元素上调用;
【问题讨论】:
标签: javascript html canvas