Circular progress bar (canvas)
Circular progress bar (canvas)
by satantx
HTML
<canvas id="counter" width="240" height="240"></canvas>
CSS
canvas {
display: block;
}
input {
width: 200px;
}
body {
}
JavaScript
// SVG stuff
var bg = document.id('counter');
var ctx = ctx = bg.getContext('2d');
var imd = null;
var circ = Math.PI * 2;
var quart = Math.PI / 2;
ctx.beginPath();
ctx.strokeStyle = '#99CC33';
ctx.lineCap = 'square';
ctx.closePath();
ctx.fill();
ctx.lineWidth = 2.0;
imd = ctx.getImageData(0, 0, 240, 240);
var draw = function(current) {
ctx.putImageData(imd, 0, 0);
ctx.beginPath();
ctx.arc(120, 120, 70, -(quart), ((circ) * current) - quart, false);
ctx.stroke();
}
var myFx = new Fx({
duration: 2000,
transition: 'linear',
onStep: function(step){
draw(step / 100);
}
});
myFx.set = function(now){
var ret = Fx.prototype.set.call(this, now);
this.fireEvent('step', now);
return ret;
};
myFx.start(0, 80);