I want my countdown to be visualised by an arc growing the more time passes.
Like this
There are four circles (days, hours, minutes and seconds). The countdown is already working. This is the code I already have.
const getTimeRemaining = (endtime) =>{
let t = Date.parse(endtime) - Date.parse(new Date());
let seconds = Math.floor((t / 1000) % 60);
let minutes = Math.floor((t / 1000 / 60) % 60);
let hours = Math.floor((t / (1000 * 60 * 60)) % 24);
let days = Math.floor(t / (1000 * 60 * 60 * 24));
return {
'total': t,
'days': days,
'hours': hours,
'minutes': minutes,
'seconds': seconds
};
}
const initializeClock = (id, endtime) =>{
let clock = document.getElementById(id);
let daysTime = document.querySelector('.dagen');
let hoursTime = document.querySelector('.uren');
let minutesTime = document.querySelector('.minuten');
let secondsTime = document.querySelector('.seconden');
const updateClock = () =>{
var t = getTimeRemaining(endtime);
daysTime.innerHTML = t.days;
hoursTime.innerHTML = ('0' + t.hours).slice(-2);
minutesTime.innerHTML = ('0' + t.minutes).slice(-2);
secondsTime.innerHTML = ('0' + t.seconds).slice(-2);
if (t.total <= 0) {
clearInterval(timeinterval);
}
}
updateClock();
let timeinterval = setInterval(updateClock, 1000);
}
let eind = 'july 20 2016 10:00:00 GMT+0100';
initializeClock('clockdiv', eind);
.klokjes{
width: 800px;
margin: 0 auto;
display: -webkit-flex;
display: flex;
align-items: center;
flex-direction: row;
justify-content: space-around;
font-family: 'aller_lightregular';
color: #fff;
text-align: center;
}
.klokjes > div{
width: 130px;
height: 130px;
margin: 20px;
border-radius: 90px;
background: #00BF96;
}
.klokjes div > span{
font-size:38px;
padding-top: 15px;
display: inline-block;
}
.klokjes .g{
background-color: #78D722;
}
.klokjes .y{
background-color: #F5C239;
}
.klokjes .b{
background-color: #3ADDD2;
}
.klokjes .p{
background-color: #EF5570;
}
<section class="homeCountdown">
<h4>Aanvang van het festival</h4>
<div class="klokjes">
<div class="g">
<span class="dagen"></span>
<div class="vasteTekst">dagen</div>
</div>
<div class="y">
<span class="uren"></span>
<div class="vasteTekst">uren</div>
</div>
<div class="b">
<span class="minuten"></span>
<div class="vasteTekst">minuten</div>
</div>
<div class="p">
<span class="seconden"></span>
<div class="vasteTekst">seconden</div>
</div>
</div>
</section>
Is there a way to make an ark (maybe using an svg) to visualise this better?