Olá, Eu tentei criar um timer que mostraria na tela a passagem dos segundos e iria parar quando eu clicasse no botão "Stop", mas a única coisa que acontece quando eu executo é o computador "dar pau" e eu ter que reiniciar ele...
Onde eu estou errando?
<!DOCTYPE html>
<html>
<head>
<title>Timer</title>
<meta charset="utf-8">
<style>
*{
box-sizing: border-box;
}
.timer{
font-size: 4em;
text-align: center;
line-height: 400px;
color: blue;
margin-bottom: 50px;
}
.botao{
width: 100px;
height: 75px;
border: none;
background-color: red;
color: white;
padding: 15px;
margin: 0 auto;
font-size: 2em;
display: block;
}
</style>
</head>
<body>
<div class="timer">
No time.
</div>
<button class="botao">Stop</button>
</body>
<script>
document.querySelector(".botao").addEventListener("click",stopButton);
for(i = 0; i < Infinity;){
setTimeout(function(){
i++;
relogio.textContent = i;
stop();
},1000);
}
var relogio = document.querySelector(".timer");
var i = 0;
var stop = false;
function stop(st = stop){
if(st){
alert("Timer is stopped!");
break;
}
}
function stopButton(){
stop = true;
}
</script>
</html>