circle.js
var circleTimer;
var circleFlag = false;
var circle = {
run:function(opts)
{
if(!opts.id) throw new Error("must be canvas id.");
var canvas = document.getElementById(opts.id), ctx;
if(canvas && (ctx = canvas.getContext("2d")))
{
canvas.width = canvas.height = "300";
var noop = function(){
};
var before = opts.onBefore || noop;
var ringDo = opts.onRingDo || noop;
var after = opts.onAfter || noop;
before(ctx);
var step = opts.step || 1;
var delay = opts.delay || 100;
var myRageNow = 0;
var myStepNow = 0;
var myRage = 360 * (opts.percent || 0);
var sRage = -Math.PI * 0.5;
var doDraw = function()
{
circleFlag = true;
myRageNow += step;
myStepNow += step;
if(myRageNow <= myRage)
{
if(myStepNow == 361)
{
myStepNow = 1;
ringDo(ctx);
}
ctx.fillStyle = opts.color || '#f76220';
ctx.beginPath();
ctx.moveTo(150, 150);
ctx.arc(150, 150, 150, sRage, Math.PI * 2 * (myStepNow/360) + sRage);
ctx.fill();
circleTimer = setTimeout(doDraw, delay);
}
else