From aa4946c58c57bc38de00f15cbd94b97b64150586 Mon Sep 17 00:00:00 2001 From: SidBen Date: Mon, 4 Oct 2021 17:28:32 +0100 Subject: [PATCH 1/2] create a simple count down timer project --- Sidben99/index.html | 20 ++++++++++ Sidben99/main.js | 97 +++++++++++++++++++++++++++++++++++++++++++++ Sidben99/style.css | 45 +++++++++++++++++++++ 3 files changed, 162 insertions(+) create mode 100644 Sidben99/index.html create mode 100644 Sidben99/main.js create mode 100644 Sidben99/style.css diff --git a/Sidben99/index.html b/Sidben99/index.html new file mode 100644 index 0000000..216bdc7 --- /dev/null +++ b/Sidben99/index.html @@ -0,0 +1,20 @@ + + + + + + + + + Document + + +
+
00:00
+ play_arrow + restart_alt + timer +
+ + + \ No newline at end of file diff --git a/Sidben99/main.js b/Sidben99/main.js new file mode 100644 index 0000000..152d30c --- /dev/null +++ b/Sidben99/main.js @@ -0,0 +1,97 @@ +let timerBtn = document.querySelector(".container").lastElementChild; +let publicMinute = 0; +let startAndPause = document.querySelector(".container span:first-of-type"); +let i =0; +let intervalID; + + + +let setTime = () => { + let minute = prompt("set a number of minutes"); + if(minute !== null){ + while(minute > 60) { + alert("enter a number smaller than 60") + minute = prompt("set a number of minutes"); + } + while(minute < 0) { + alert("enter a number greater than 0") + minute = prompt("set a number of minutes"); + } + while(isNaN(parseInt(minute))) { + alert("enter a number not a character") + minute = prompt("set a number of minutes"); + } + clearInterval(intervalID); + let timer = document.querySelector(".timer"); + minute = parseInt(minute); + timer.innerHTML = minute >= 10 ? minute+":00" : "0"+minute+":00"; + publicMinute = minute; + } + +} +timerBtn.addEventListener("click",setTime); + + +startAndPause.onclick = () => { + + let time = document.querySelector(".timer").innerHTML; + let currentMinute = parseInt(time.slice(0,time.indexOf(":"))); + let currentSecs = parseInt(time.slice(time.indexOf(":")+1,time.length)); + + if(i % 2 === 0){ + startAndPause.innerHTML = "pause"; + startAndPause.style.setProperty("color","#e74320"); + timerBtn.removeEventListener("click",setTime) + timerBtn.style.setProperty("color","#ccc") + var j = setInterval(counting,1000) ; + intervalID = j; + function counting () { + currentSecs--; + if(currentSecs === -1){ + if(currentMinute === 0){ + // ending functionality + + clearInterval(j); + startAndPause.innerHTML = "play_arrow"; + startAndPause.style.setProperty("color","#52c6ba"); + timerBtn.addEventListener("click",setTime); + timerBtn.style.setProperty("color","#ffbb30") + i++; + }else{ + // new minute Functionality + currentMinute--; + currentSecs = 60; + + } + }else{ + + startAndPause.previousElementSibling.innerHTML = `${currentMinute >= 10 ? currentMinute : "0"+currentMinute}:${currentSecs >= 10 ? currentSecs : "0"+currentSecs}`; + } + + } + + }else{ + // stoping functionality + + clearInterval(intervalID); + startAndPause.innerHTML = "play_arrow"; + startAndPause.style.setProperty("color","#52c6ba"); + timerBtn.addEventListener("click",setTime); + timerBtn.style.setProperty("color","#ffbb30") + } + i++; +} + + +// reset Time +let reset = document.querySelector(".container span:nth-of-type(2)"); +reset.onclick = () => { + clearInterval(intervalID); + let timer = document.querySelector(".timer"); + timer.innerHTML = `${publicMinute >= 10 ? publicMinute : "0"+publicMinute}:00`; + i=0; + startAndPause.innerHTML = "play_arrow"; + startAndPause.style.setProperty("color","#52c6ba"); + timerBtn.addEventListener("click",setTime); + timerBtn.style.setProperty("color","#ffbb30") +} diff --git a/Sidben99/style.css b/Sidben99/style.css new file mode 100644 index 0000000..27947ec --- /dev/null +++ b/Sidben99/style.css @@ -0,0 +1,45 @@ +*{ + margin: 0; + padding: 0; + box-sizing: border-box; + font-family:arial , "sans-serif"; +} +body{ + height:100vh; + padding:200px 20px; + display:grid; + place-items:center; + background-color:#eee; +} +.container { + border:1px solid rgba(0,0,0,.05); + width:300px; + background-color:white; + border-radius:10px; + padding:10px 30px; + height:100px; + display:grid; + grid-template-columns:1fr max-content max-content max-content; + align-items:center; + gap:10px; + box-shadow:0px 10px 10px rgba(0,0,0,.05); +} +.timer{ + justify-self:flex-start; + font-weight:700; + font-size:21px; + color:#333; +} +.container span{ + font-size:28px; + cursor:pointer; +} +.container span:first-of-type{ + color:#52c6ba; +} +.container span:nth-of-type(2){ + color:#1775aa; +} +.container span:last-of-type{ + color:#ffbb30; +} \ No newline at end of file From dfcb2f55aa9b2f68331950314ad7d4ac821a9c5d Mon Sep 17 00:00:00 2001 From: SidBen Date: Mon, 4 Oct 2021 17:33:23 +0100 Subject: [PATCH 2/2] create a simple count down timer project --- Sidben99/{ => countDownTImer}/index.html | 0 Sidben99/{ => countDownTImer}/main.js | 0 Sidben99/{ => countDownTImer}/style.css | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename Sidben99/{ => countDownTImer}/index.html (100%) rename Sidben99/{ => countDownTImer}/main.js (100%) rename Sidben99/{ => countDownTImer}/style.css (100%) diff --git a/Sidben99/index.html b/Sidben99/countDownTImer/index.html similarity index 100% rename from Sidben99/index.html rename to Sidben99/countDownTImer/index.html diff --git a/Sidben99/main.js b/Sidben99/countDownTImer/main.js similarity index 100% rename from Sidben99/main.js rename to Sidben99/countDownTImer/main.js diff --git a/Sidben99/style.css b/Sidben99/countDownTImer/style.css similarity index 100% rename from Sidben99/style.css rename to Sidben99/countDownTImer/style.css