Skip to content

Commit 9e42f63

Browse files
authored
smth
1 parent ef39dc0 commit 9e42f63

File tree

1 file changed

+68
-62
lines changed
  • 2-ui/1-document/07-modifying-document/10-clock-setinterval/solution.view

1 file changed

+68
-62
lines changed
Lines changed: 68 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -1,62 +1,68 @@
1-
<!DOCTYPE HTML>
2-
<html>
3-
<head>
4-
<style>
5-
.hour {
6-
color: red
7-
}
8-
9-
.min {
10-
color: green
11-
}
12-
13-
.sec {
14-
color: blue
15-
}
16-
</style>
17-
</head>
18-
19-
<body>
20-
21-
<div id="clock">
22-
<span class="hour">hh</span>:<span class="min">mm</span>:<span class="sec">ss</span>
23-
</div>
24-
25-
<script>
26-
let timerId;
27-
28-
function update() {
29-
let clock = document.getElementById('clock');
30-
let date = new Date();
31-
32-
let hours = date.getHours();
33-
if (hours < 10) hours = '0' + hours;
34-
clock.children[0].innerHTML = hours;
35-
36-
let minutes = date.getMinutes();
37-
if (minutes < 10) minutes = '0' + minutes;
38-
clock.children[1].innerHTML = minutes;
39-
40-
let seconds = date.getSeconds();
41-
if (seconds < 10) seconds = '0' + seconds;
42-
clock.children[2].innerHTML = seconds;
43-
}
44-
45-
function clockStart() {
46-
timerId = setInterval(update, 1000);
47-
update(); // <-- начать тут же, не ждать 1 секунду пока setInterval сработает
48-
}
49-
50-
function clockStop() {
51-
clearInterval(timerId);
52-
}
53-
</script>
54-
55-
<!-- клик по этой кнопке вызовет clockStart() -->
56-
<input type="button" onclick="clockStart()" value="Старт">
57-
58-
<!-- клик по этой кнопке вызовет clockStop() -->
59-
<input type="button" onclick="clockStop()" value="Стоп">
60-
61-
</body>
62-
</html>
1+
<!DOCTYPE HTML>
2+
<html>
3+
<head>
4+
<style>
5+
.hour {
6+
color: red
7+
}
8+
9+
.min {
10+
color: green
11+
}
12+
13+
.sec {
14+
color: blue
15+
}
16+
</style>
17+
</head>
18+
19+
<body>
20+
21+
<div id="clock">
22+
<span class="hour">hh</span>:<span class="min">mm</span>:<span class="sec">ss</span>
23+
</div>
24+
25+
<script>
26+
let timerId;
27+
28+
function update() {
29+
let clock = document.getElementById('clock');
30+
let date = new Date();
31+
32+
let hours = date.getHours();
33+
if (hours < 10) hours = '0' + hours;
34+
clock.children[0].innerHTML = hours;
35+
36+
let minutes = date.getMinutes();
37+
if (minutes < 10) minutes = '0' + minutes;
38+
clock.children[1].innerHTML = minutes;
39+
40+
let seconds = date.getSeconds();
41+
if (seconds < 10) seconds = '0' + seconds;
42+
clock.children[2].innerHTML = seconds;
43+
}
44+
45+
function clockStart() {
46+
// устанавить новый интервал только в том случае, если часы остановлены
47+
// в противном случае мы бы переписали ссылку timerID на интервал выполнения и никогда больше не смогли бы остановить часы
48+
if (!timerId) {
49+
timerId = setInterval(update, 1000);
50+
}
51+
update(); // <-- начать тут же, не ждать 1 секунду пока первый setInterval сработает
52+
}
53+
54+
function clockStop() {
55+
clearInterval(timerId);
56+
timerId = null; // <-- очистить timerID, чтобы указать, что часы были остановлены, чтобы можно было запустить их снова в clockStart()
57+
}
58+
59+
</script>
60+
61+
<!-- клик по этой кнопке вызовет clockStart() -->
62+
<input type="button" onclick="clockStart()" value="Start">
63+
64+
<!-- клик по этой кнопке вызовет clockStop() -->
65+
<input type="button" onclick="clockStop()" value="Stop">
66+
67+
</body>
68+
</html>

0 commit comments

Comments
 (0)