diff options
Diffstat (limited to '')
-rw-r--r-- | timer.js | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/timer.js b/timer.js new file mode 100644 index 0000000..e2e9380 --- /dev/null +++ b/timer.js @@ -0,0 +1,49 @@ +let params; +let cur_seconds = null; +let timer_id; +const cd = document.getElementById("countdown"); + +function setupCountdown() { + params = new URLSearchParams(document.location.search); + for ([key, value] of params.entries()) { + console.log(`${key}: ${value}`); + } + + cur_seconds = parseInt(params.get("duration")); + + if (params.get("f_family") !== "") { + cd.style.fontFamily = params.get("f_family"); + } + cd.style.color = params.get("f_color"); + + draw(); + timer_id = window.setInterval(tick, 1000); +} + +function tick() { + if (cur_seconds == 0) { + while (cd.firstChild) { + cd.removeChild(cd.firstChild); + } + let end_msg = document.createElement("div"); + end_msg.textContent = params.get("end_text"); + cd.appendChild(end_msg); + window.clearInterval(timer_id); + return; + } + cur_seconds--; + draw(); +} + +function draw() { + document.getElementById("minutes").textContent = zero_pad(Math.floor(cur_seconds / 60)); + document.getElementById("seconds").textContent = zero_pad((cur_seconds % 60)); +} + +function zero_pad(num) { + if (num < 10) { + return "0"+num; + } else { + return num; + } +} |