<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div class="time"><span class="hours">00</span>:<span class="minutes">00</span>:<span
class="seconds">00</span>
</div>
<script>
const time = document.querySelector(".time");
const seconds = document.querySelector(".seconds");
const minutes = document.querySelector(".minutes");
const hours = document.querySelector(".hours");
let s = 0;
let m = 0;
let h = 0;
for (s; s <= 59; s++) {
seconds.innerHTML = s;
}
</script>
</body>
</html>
- 31
- 2
-
1setTimeout и setInterval в помощь – andreymal Dec 08 '20 at 20:36
-
Да, браузер не может перерисовывать страницу одновременно с непрерывным исполнением скрипта, нужно давать ему возможность для обновления в перерывах. Одна из возможностей — setTimeout и setInterval. – vsemozhebuty Dec 08 '20 at 20:39
-
1Зря вы так. Мы ведь не знаем объёма ваших знаний. Достаточно попросить уточнить, что неизвестно, а не грубить людям, которые пытались хоть как-то помочь. – vsemozhebuty Dec 08 '20 at 20:43
-
Извините, я думал вы стебетесь надо мной, + я злой очень,не передать словами, уровень знаний-ниже плинтуса – Данила Сергеев Dec 08 '20 at 20:45
2 Answers
Ну например вот так - с минутами и часами уж сами разберетесь, и вам не помешало бы поспокойнее быть...
const time = document.querySelector(".time");
const seconds = document.querySelector(".seconds");
const minutes = document.querySelector(".minutes");
const hours = document.querySelector(".hours");
let s = 0;
let m = 0;
let h = 0;
let timerId = setTimeout(function tick() {
s = s + 1;
if (s < 10) {
seconds.innerHTML = "0" + s;
} else {
seconds.innerHTML = s;
}
timerId = setTimeout(tick, 1000);
}, 1000);
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div class="time"><span class="hours">00</span>:<span class="minutes">00</span>:<span
class="seconds">00</span>
</div>
</body>
</html>
- 515
- 2
- 7
Нужно учесть, что браузер не может перерисовывать страницу одновременно с непрерывным исполнением скрипта, нужно давать ему возможность для обновления в перерывах. Одна из возможностей — setTimeout и setInterval. К тому же эти функции помогут вам не мгновенно пробежать от 0 до 59, а с задержкой, приближенной к настоящей секунде.
Подробнее можно прочитать, например, тут: https://learn.javascript.ru/settimeout-setinterval
Вот один из вариантов увеличения секунд:
const seconds = document.querySelector(".seconds");
let s = 0;
const interval = setInterval(
() => {
if (s > 59) clearInterval(interval);
else seconds.textContent = s++;
},
1000
);
<div class="time"><span class="hours">00</span>:<span class="minutes">00</span>:<span
class="seconds">00</span>
</div>
- 14,042