回答編集履歴

1

コードを追記いたしました

2016/05/15 08:42

投稿

gzrita
gzrita

スコア236

test CHANGED
@@ -5,3 +5,169 @@
5
5
  リセットをクリックしても、残り時間が3分に戻るのみで、
6
6
 
7
7
  タイマーが減っていく処理が続いているみたいですね。
8
+
9
+
10
+
11
+ [追記]コメントを拝見しまして、修正を行ったコードも追記致します。
12
+
13
+
14
+
15
+ ```HTML
16
+
17
+ <!DOCTYPE html>
18
+
19
+ <html lang="ja">
20
+
21
+ <head>
22
+
23
+ <meta charset="UTF-8">
24
+
25
+ <title>カウントダウンタイマー</title>
26
+
27
+ <script>
28
+
29
+ window.onload = function(){
30
+
31
+ var time = 10;
32
+
33
+ var counter;
34
+
35
+ var min = document.getElementById("min");
36
+
37
+ var sec = document.getElementById("sec");
38
+
39
+ var start = document.getElementById("start");
40
+
41
+ var stop = document.getElementById("stop");
42
+
43
+ var reset = document.getElementById("reset");
44
+
45
+
46
+
47
+ start.onclick = function() {
48
+
49
+ toggle();
50
+
51
+ counter = setInterval( count, 1000 );
52
+
53
+ }
54
+
55
+ stop.onclick = function() {
56
+
57
+ toggle();
58
+
59
+ clearInterval( counter );
60
+
61
+ }
62
+
63
+
64
+
65
+ reset.onclick = function() {
66
+
67
+ time = 180;
68
+
69
+ min.innerHTML = Math.floor( time / 60 );
70
+
71
+ sec.innerHTML = Math.floor( time % 60 );
72
+
73
+ //ここから修正箇所です
74
+
75
+ clearInterval( counter ); //タイマーを停止させます
76
+
77
+ if( start.disabled ) { //タイマーがスタートしていた場合は…
78
+
79
+ toggle(); //…ストップをクリックした際と同様にボタンを元に戻します
80
+
81
+ }
82
+
83
+ //修正箇所はここまでです
84
+
85
+ }
86
+
87
+
88
+
89
+ function toggle() {
90
+
91
+ if( start.disabled ) {
92
+
93
+ start.disabled = false;
94
+
95
+ stop.disabled = true;
96
+
97
+ } else {
98
+
99
+ start.disabled = true
100
+
101
+ stop.disabled = false;
102
+
103
+ }
104
+
105
+ }
106
+
107
+
108
+
109
+ function count() {
110
+
111
+ if( time === 0 ) {
112
+
113
+ sec.innerHTML = 0;
114
+
115
+ min.innerHTML = 0;
116
+
117
+ toggle();
118
+
119
+ //alert("Time UP!");
120
+
121
+ document.write("Time UP");
122
+
123
+ clearInterval( counter );
124
+
125
+ } else {
126
+
127
+ time -= 1;
128
+
129
+ sec.innerHTML = time % 60;
130
+
131
+ min.innerHTML = Math.floor( time / 60 );
132
+
133
+ }
134
+
135
+ }
136
+
137
+ }
138
+
139
+
140
+
141
+ </script>
142
+
143
+ </head>
144
+
145
+ <body>
146
+
147
+ <div id="timer">
148
+
149
+ <p>
150
+
151
+ <span id="min">00</span>
152
+
153
+ <span id="sec">00</span>
154
+
155
+ </p>
156
+
157
+ <p>
158
+
159
+ <input type="button" id="start" value="スタート">
160
+
161
+ <input type="button" id="stop" value="ストップ" disabled>
162
+
163
+ <input type="button" id="reset" value="リセット">
164
+
165
+ </p>
166
+
167
+ </div>
168
+
169
+ </body>
170
+
171
+ </html>
172
+
173
+ ```