Javascript Timer

6

Well what I wanted was to do a 60 second timer.

That would work as follows: Count 60 seconds in descending order 60,59,58, 57, etc ... and when it reached 0, pause at 0 for 3 seconds, and start all over again 60,59, 58 etc ...

How can I do this?

Thank you first.

    
asked by anonymous 07.03.2016 / 19:17

3 answers

6

You can have a% of% permanent and go "managing traffic" of flags / counters to do whatever you want.

For example:

var contador = 60;
var espera;
setInterval(function() {
    contador--;

    if (contador > 0) return reporter(contador + ' segundos'); // aqui é o caso ativo
    if (contador == 0) espera = 3;

    reporter('à espera ' + espera + ' segundos'); // aqui é o caso de espera
    if (contador < 0) espera--;
    if (espera == 0) contador = 60;

}, 1000);

jsFiddle: link

var reporter = function(report) {
    document.body.innerHTML = report;
}
var contador = 60;
var espera;
setInterval(function() {
    contador--;

    if (contador > 0) return reporter(contador + ' segundos');
    if (contador == 0) espera = 3;
    
    reporter('à espera ' + espera + ' segundos');
    if (contador < 0) espera--;
    if (espera == 0) contador = 60;

}, 1000);
    
07.03.2016 / 21:58
6

Use a set of setInterval() with setTimeout() :

var temporizador = document.getElementById('temporizador');

var ativerIntervalo = function() {
  temporizador.innerHTML = 60;
  var intervalo = setInterval(function() {
    var novoValor = parseInt(temporizador.innerHTML, 10) - 1;
    temporizador.innerHTML = novoValor;

    if (novoValor === 0) {
      clearInterval(intervalo);
      setTimeout(ativerIntervalo, 3000);
    }
  }, 1000);
};
ativerIntervalo();
<p>Temporizador: <span id="temporizador">60</span></p>

setInterval() to make your counter go down from 60 to 0, and setTimeout() to wait 3 seconds before doing everything again.

    
07.03.2016 / 19:32
0

example using just the setTimout and assuming you have an element with id="counter" jsFiddle

function contar(numeroAtual) {
    document.getElementById('contador').textContent = numeroAtual;
    if (numeroAtual === 0) {
    setTimeout(function(){
        contar(60);
    }, 3000);
  } else {
    numeroAtual--;
    setTimeout(function(){
        contar(numeroAtual);
    }, 1000);
  }
}

contar(0);
    
07.03.2016 / 19:49