You should first create the canvas element in either HTML
or Javascript,
and specify its width and height.
<canvas id="my_canvas" width="100" height="40"></canvas>
Note: you should NOT specify the size of the canvas in CSS.
Then proceed with codes like the following ones.
var myCanvas = document.getElementById('my_canvas'); var circle = new ProgressCircle({ canvas: myCanvas, }); circle.addEntry({ fillColor: 'rgba(255, 255, 0, 0.5)', progressListener: function() { return THE_PROGRESS_VARIABLE_TO_LISTEN; // between 0 and 1 }, });
You can add multiple progress indicators:
circle.addEntry({ fillColor: 'rgba(102, 255, 0, 0.5)', progressListener: function() {return p1;}, }).addEntry({ fillColor: 'rgba(255, 255, 0, 0.5)', progressListener: function() {return p2;}, }).addEntry({ fillColor: 'rgba(0, 0, 255, 0.5)', progressListener: function() {return p3;}, });
Then call `start` to start the animation.
circle.start(33); // 33 is the interval(ms) between each update
If you want to stop the animation, call the `stop` method.
circle.stop();
var circle = new ProgressCircle({ canvas: myCanvas, minRadius: 10, // Inner radius of the innermost circle arcWidth: 3, // Width of each circle gapWidth: 2, // Space between adjacent circles centerX: 20, // X coordinate of the circle center centerY: 20, // Y coordinate of the circle center infoLineLength: 200, // Length of the info line horizLineLength: 50, // Length of the horizontal info line infoLineBaseAngle: Math.PI / 6, // Start angle of the info line infoLineAngleInterval: Math.PI / 8, // Angle between info lines }); circle.addEntry({ fillColor: 'rgba(255, 255, 0, 0.5)', outlineColor: 'rgba(255, 255, 255, 0.5)' // (Optional) progressListener: function() {return p1;}, infoListener: function() {return text1;},// (Optional) });