Code - Liga e desliga contador
Código em JavaScript que liga e desliga um contador com setInterval().
Este é um exemplo da utilização da função interna setInterval() de JavaScript.
A idéia é termos 2 botões (start e stop) para iniciar e para a contagem. O resultado é exibido na textbox
denominada display.
A “mágica” toda está na função setInterval(callback, milesegundos), ela recebe uma função de callback que será
executada em um intervalo de n milesegundos. A cada iteração a função de callback será executada indefinidamente é
como se fosse um função recursiva. A função setInterval retorna um identificar que nos é muito útil quando queremos
para a animação, para tal utilizamos a função clearInterval(identificador), exemplo:
// iniciar a animação
var identificador = setInterval(callback, 1000);
// parar a animação
clearInterval(identificador);
É o que estamos fazendo com a variável id.
See the Pen Liga e desliga contador by Flávio Micheletti (@flaviomicheletti) on CodePen.
Um porém é que, ao executarmos clearInterval() ele apenas interrompe a execução mas o valor da variável identificadora
continua sendo válido (true). Precisamos atribuir null explicitamente para anular o valor da variável.
Você deve ter reparado na estrutura if do botão “Start count!”…
if(!id) {
// A mágica...
...
...
...
}
…ele evita que a animação seja novamente inicializada uma vez que ela já esteja rodando.
Quanto aos botões, vale comentar que estamos anexando os eventos através da propriedade onclick, fiz isso para manter
o exemplo didaticamente simples, mas deveríamos estar utilizando receptores de eventos.