I want to count from 3 down to 0 then back up to 3 in a loop. This is kind of “slider” implementation. Everything runs fine until reach the clearInterval from counterry. What am I missing?
var counttx = 0, // counter
counterrx = setInterval(timerrx, 1000), // countup - start
counterry; // countdown after reach 3
function timerrx(){
counttx = counttx+1;
//console.log(counttx);
if(counttx > 2){
counterry = setInterval(timerry, 1000);
clearInterval(counterrx);
}
}
function timerry(){
counttx = counttx-1;
//console.log(counttx);
if(counttx < 2){
setInterval(timerrx, 1000);
clearInterval(counterry);
}
}
Advertisement
Answer
Use a single loop:
let counttx = 0, countup = true;
const counter = document.getElementById('counter');
function timerr()
{
if (countup)
{
++counttx;
if (counttx >= 3)
countup = false;
}
else
{
--counttx;
if (counttx <= 0)
countup = true;
}
counter.value = counttx;
}
setInterval(timerr, 1000);<input type="number" id="counter" value="0" />