-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathstopwatch.js
45 lines (36 loc) · 893 Bytes
/
stopwatch.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
// implementation based on http://stackoverflow.com/a/20319035/473467
function StopWatch(options) {
this.delay = options.delay;
this.timer = options.timer;
};
StopWatch.prototype.stop = function() {
if (this.interval) {
clearInterval(this.interval);
this.interval = null;
}
};
StopWatch.prototype.start = function() {
if (!this.interval) {
this.offset = Date.now();
this.interval = setInterval(stopwatch.update.bind(this), this.delay);
}
};
StopWatch.prototype.reset = function() {
this.clock = 0;
this.render();
};
StopWatch.prototype.update = function() {
this.clock += this.delta();
this.render();
};
StopWatch.prototype.delta = function() {
var now = Date.now(),
d = now - this.offset;
this.offset = now;
return d;
};
StopWatch.prototype.render = function() {
};
StopWatch.prototype.elapsed = function() {
return this.clock;
};