-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstopwatch.js
80 lines (79 loc) · 3 KB
/
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
var startTimerButton = document.querySelector('.startTimer');
var pauseTimerButton = document.querySelector('.pauseTimer');
var timerDisplay = document.querySelector('.timer');
var startTime;
var updatedTime;
var difference;
var tInterval;
var savedTime;
var paused = 0;
var running = 0;
function startTimer(){
if(!running){
startTime = new Date().getTime();
tInterval = setInterval(getShowTime, 1);
// change 1 to 1000 above to run script every second instead of every millisecond. one other change will be needed in the getShowTime() function below for this to work. see comment there.
paused = 0;
running = 1;
timerDisplay.style.background = "#FF0000";
timerDisplay.style.cursor = "auto";
timerDisplay.style.color = "yellow";
startTimerButton.classList.add('lighter');
pauseTimerButton.classList.remove('lighter');
startTimerButton.style.cursor = "auto";
pauseTimerButton.style.cursor = "pointer";
}
}
function pauseTimer(){
if (!difference){
// if timer never started, don't allow pause button to do anything
} else if (!paused) {
clearInterval(tInterval);
savedTime = difference;
paused = 1;
running = 0;
timerDisplay.style.background = "#A90000";
timerDisplay.style.color = "#690000";
timerDisplay.style.cursor = "pointer";
startTimerButton.classList.remove('lighter');
pauseTimerButton.classList.add('lighter');
startTimerButton.style.cursor = "pointer";
pauseTimerButton.style.cursor = "auto";
} else {
// if the timer was already paused, when they click pause again, start the timer again
startTimer();
}
}
function resetTimer(){
clearInterval(tInterval);
savedTime = 0;
difference = 0;
paused = 0;
running = 0;
timerDisplay.innerHTML = 'Start Timer!';
timerDisplay.style.background = "#A90000";
timerDisplay.style.color = "#fff";
timerDisplay.style.cursor = "pointer";
startTimerButton.classList.remove('lighter');
pauseTimerButton.classList.remove('lighter');
startTimerButton.style.cursor = "pointer";
pauseTimerButton.style.cursor = "auto";
}
function getShowTime(){
updatedTime = new Date().getTime();
if (savedTime){
difference = (updatedTime - startTime) + savedTime;
} else {
difference = updatedTime - startTime;
}
// var days = Math.floor(difference / (1000 * 60 * 60 * 24));
var hours = Math.floor((difference % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
var minutes = Math.floor((difference % (1000 * 60 * 60)) / (1000 * 60));
var seconds = Math.floor((difference % (1000 * 60)) / 1000);
var milliseconds = Math.floor((difference % (1000 * 60)) / 100);
hours = (hours < 10) ? "0" + hours : hours;
minutes = (minutes < 10) ? "0" + minutes : minutes;
seconds = (seconds < 10) ? "0" + seconds : seconds;
milliseconds = (milliseconds < 100) ? (milliseconds < 10) ? "00" + milliseconds : "0" + milliseconds : milliseconds;
timerDisplay.innerHTML = hours + ':' + minutes + ':' + seconds + ':' + milliseconds;
}