Цветные часы с использованием setInterval
важность: 4
Создайте цветные часы как в примере ниже:
Для стилизации используйте HTML/CSS, JavaScript должен только обновлять время в элементах.
Для начала придумаем подходящую HTML/CSS-структуру.
Здесь каждый компонент времени удобно поместить в соответствующий <span>
:
<div id="clock">
<span class="hour">hh</span>:<span class="min">mm</span>:<span class="sec">ss</span>
</div>
Каждый span
раскрашивается при помощи CSS.
Функция update
будет обновлять часы, setInterval
вызывает её каждую секунду:
function update() {
let clock = document.getElementById('clock');
let date = new Date(); // (*)
let hours = date.getHours();
if (hours < 10) hours = '0' + hours;
clock.children[0].innerHTML = hours;
let minutes = date.getMinutes();
if (minutes < 10) minutes = '0' + minutes;
clock.children[1].innerHTML = minutes;
let seconds = date.getSeconds();
if (seconds < 10) seconds = '0' + seconds;
clock.children[2].innerHTML = seconds;
}
В строке (*)
каждый раз мы получаем текущую дату. Вызовы setInterval
не надёжны: они могут происходить с задержками.
Функция clockStart
для запуска часов:
let timerId;
function clockStart() { // запустить часы
timerId = setInterval(update, 1000);
update(); // (*)
}
function clockStop() {
clearInterval(timerId);
timerId = null;
}
Обратите внимание, что вызов update()
не только запланирован, но и тут же производится в строке (*)
. Иначе посетителю пришлось бы ждать до первого выполнения setInterval
, то есть целую секунду.