Как сделать таймер в Javascript?

Пользователь

от sherwood_littel , в категории: JavaScript , 3 года назад

Как сделать таймер в Javascript?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от Ekaterina_90 , 3 года назад

@sherwood_littel  Сделать таймер в Javascript можно следующим образом:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<html lang="en">
<head>
    <meta charset="UTF-8"/>
</head>
<body>
<input type="text" value="0" id="timer"/>
<input type="submit" value="Старт" onclick="start()"/>
<input type="submit" value="Стоп" onclick="stop()"/>
<input type="submit" value="Сбросить" onclick="reset()"/>

<script>
    let timer
    const elem = document.getElementById("timer");

    function reset() {
        elem.value = 0;
    }

    function run() {
        elem.value = parseInt(elem.value) + 1;
    }

    function start() {
        timer = setInterval(run, 1000);
    }

    function stop() {
        clearInterval(timer);
    }
</script>
</body>
</html>


Пользователь

от willa_will , 2 года назад

@sherwood_littel 

Можно создать таймер с использованием setInterval, который будет запускать функцию каждую секунду и уменьшать значение времени до нуля. Вот пример кода:


HTML:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>Таймер</title>
  </head>
  <body>
    <div>
      <h1 id="timer">00:00:00</h1>
    </div>
    <button onclick="startTimer()">Старт</button>
    <button onclick="stopTimer()">Стоп</button>
  </body>
</html>


JavaScript:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
var timer = document.getElementById("timer");
var interval;
var time = 0;

function startTimer() {
  interval = setInterval(function () {
    time++;
    var minutes = Math.floor((time / 60) % 60);
    var seconds = Math.floor(time % 60);
    var hours = Math.floor((time / (60 * 60)) % 24);
    timer.innerHTML =
      (hours ? (hours > 9 ? hours : "0" + hours) : "00") +
      ":" +
      (minutes ? (minutes > 9 ? minutes : "0" + minutes) : "00") +
      ":" +
      (seconds > 9 ? seconds : "0" + seconds);
  }, 1000);
}

function stopTimer() {
  clearInterval(interval);
  time = 0;
  timer.innerHTML = "00:00:00";
}


Этот код создаст таймер, который начнет отсчет времени при нажатии на "Старт", а остановит его при нажатии на "Стоп". Таймер обновляется каждую секунду и отображает время в формате HH:MM:SS.