Temporizadores - JavaScript
Para executar ações após determinados intervalos de tempo, o objeto window
Função setTimeout
Para executar ações uma única vez após um intervalo de tempo, utiliza-se a função setTimeout()
const timerId = setTimeout(someFunction, period);
O parâmetro period
someFunction
function printMessage() {
console.log("Hello Programício!");
}
setTimeout(printMessage, 5000);
No exemplo acima, a função printMessage
Para parar o temporizador, usa-se a função clearTimeout()
Função setInterval
As funções setInterval()
clearInterval()
setTimeout()
clearTimeout()
setInterval()
Por exemplo, uma pequena aplicação para exibir a hora atual:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Programício</title>
</head>
<body>
<div id="timer"></div>
<script>
const timer = document.getElementById("timer");
function updateTime() {
const now = new Date();
timer.textContent = `${now.getHours()}:${now.getMinutes()}:${now.getSeconds()}`;
}
setInterval(updateTime, 1000);
</script>
</body>
</html>
Aqui, a função updateTime()
<div id="timer">
requestAnimationFrame()
O método requestAnimationFrame()
setInterval()
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Programício</title>
<style>
#rect {
margin: 100px;
width: 100px;
height: 100px;
background: #50c878;
}
</style>
</head>
<body>
<div id="rect"></div>
<script>
const square = document.getElementById("rect");
let offset = 0;
let step = 1;
function moveRect() {
if (offset >= 600) step = -1;
if (offset <= 0) step = 1;
offset += step;
square.style.marginLeft = offset + "px";
window.requestAnimationFrame(moveRect);
}
window.requestAnimationFrame(moveRect);
</script>
</body>
</html>
No método window.requestAnimationFrame()
moveRect
window.requestAnimationFrame(moveRect)
O método window.requestAnimationFrame()
// Obtendo o id
const id = window.requestAnimationFrame(moveRect);
// Parando a animação
window.cancelAnimationFrame(id);