Mercurial Hosting > luan
comparison website/src/fschmidt/stopwatch.html @ 1292:a6892dcf5659
minor
| author | Franklin Schmidt <fschmidt@gmail.com> | 
|---|---|
| date | Thu, 03 Jan 2019 15:01:36 -0700 | 
| parents | fb802d8aba0b | 
| children | 007ceb8dcf89 | 
   comparison
  equal
  deleted
  inserted
  replaced
| 1291:2bbc6f132d61 | 1292:a6892dcf5659 | 
|---|---|
| 20 | 20 | 
| 21 function now() { | 21 function now() { | 
| 22 return Math.floor(Date.now()/1000); | 22 return Math.floor(Date.now()/1000); | 
| 23 } | 23 } | 
| 24 | 24 | 
| 25 function showTime() { | 25 function show() { | 
| 26 var start = localStorage.start; | 26 var start = localStorage.start; | 
| 27 var time; | 27 var time; | 
| 28 if( !start ) { | 28 if( !start ) { | 
| 29 time = 0; | 29 time = 0; | 
| 30 } else { | 30 } else { | 
| 38 var hours = time; | 38 var hours = time; | 
| 39 seconds = ('0'+seconds).slice(-2); | 39 seconds = ('0'+seconds).slice(-2); | 
| 40 minutes = ('0'+minutes).slice(-2); | 40 minutes = ('0'+minutes).slice(-2); | 
| 41 time = hours + ':' + minutes + ':' + seconds; | 41 time = hours + ':' + minutes + ':' + seconds; | 
| 42 document.querySelector('[time]').innerHTML = time; | 42 document.querySelector('[time]').innerHTML = time; | 
| 43 } | |
| 44 | 43 | 
| 45 function fixButtons() { | 44 // fix buttons | 
| 46 var isRunning = localStorage.start && !localStorage.stop; | 45 var isRunning = localStorage.start && !localStorage.stop; | 
| 47 if( isRunning ) { | 46 if( isRunning ) { | 
| 48 document.querySelector('[start]').style.display = 'none'; | 47 document.querySelector('[start]').style.display = 'none'; | 
| 49 document.querySelector('[stop]').style.display = 'inline-block'; | 48 document.querySelector('[stop]').style.display = 'inline-block'; | 
| 50 document.querySelector('[reset]').style.display = 'none'; | 49 document.querySelector('[reset]').style.display = 'none'; | 
| 65 localStorage.start = now(); | 64 localStorage.start = now(); | 
| 66 } else { | 65 } else { | 
| 67 localStorage.removeItem('stop'); | 66 localStorage.removeItem('stop'); | 
| 68 localStorage.start = now() - (stop - localStorage.start); | 67 localStorage.start = now() - (stop - localStorage.start); | 
| 69 } | 68 } | 
| 70 fixButtons(); | 69 show(); | 
| 71 } | 70 } | 
| 72 | 71 | 
| 73 function stop() { | 72 function stop() { | 
| 74 localStorage.stop = now(); | 73 localStorage.stop = now(); | 
| 75 fixButtons(); | 74 show(); | 
| 76 } | 75 } | 
| 77 | 76 | 
| 78 function reset() { | 77 function reset() { | 
| 79 localStorage.removeItem('start'); | 78 localStorage.removeItem('start'); | 
| 80 localStorage.removeItem('stop'); | 79 localStorage.removeItem('stop'); | 
| 81 showTime(); | 80 show(); | 
| 82 fixButtons(); | |
| 83 } | 81 } | 
| 84 | 82 | 
| 85 function loaded() { | 83 function loaded() { | 
| 86 showTime(); | 84 show(); | 
| 87 fixButtons(); | 85 setInterval(show,1000); | 
| 88 setInterval(showTime,1000); | |
| 89 } | 86 } | 
| 90 | 87 | 
| 91 </script> | 88 </script> | 
| 92 </head> | 89 </head> | 
| 93 <body onload="loaded()"> | 90 <body onload="loaded()"> | 
