質問編集履歴

2

カウント終了後に、カウントダウンを非表示にして「終了しました」というメッセージにjsで入れ替える

2022/11/22 06:56

投稿

tokiki
tokiki

スコア1

test CHANGED
File without changes
test CHANGED
@@ -40,6 +40,53 @@
40
40
 
41
41
  }, 1000) //1秒間に1度処理
42
42
  ```
43
+ ↓に変更を加えました。
44
+
45
+ 以下のようにしてみたのですが、終了しましたに書き換わりませんでした。
46
+ 時計表示がそのまま、表示に残っていおり、
47
+ 「終了しました」は、表示されない状況です。
48
+
49
+ cssをあてるために、ほんの少しマークアップを変更したことが原因でしょうか。。。
50
+ ```HTML
51
+ <div id="countdownArea" class="countdown">
52
+ 終了まであと...<br><br>
53
+ <span class="time_set"><span id="countdown-day"></span>Days</span><span class="point">:</span>
54
+ <span class="time_set"><span id="countdown-hour"></span>Hours</span><span class="point">:</span>
55
+ <span class="time_set"><span id="countdown-min"></span>Mins</span><span class="point">:</span>
56
+ <span class="time_set"><span id="countdown-sec"></span>Secs</span><span class="point">:</span>
57
+ </div>
58
+ ```
59
+ ```javascript
60
+ let countdown = setInterval(function(){
61
+ const now = new Date() //今の日時
62
+ const target = new Date(now.getFullYear(), 10, 23, 13, 38, 00); //ターゲット日時を取得
63
+ const remainTime = target - now //差分を取る(ミリ秒で返ってくる
64
+
65
+ //指定の日時を過ぎていたら処理をしない
66
+ if(remainTime < 0) return false
67
+
68
+ //差分の日・時・分・秒を取得
69
+ const difDay = Math.floor(remainTime / 1000 / 60 / 60 / 24)
70
+ const difHour = Math.floor(remainTime / 1000 / 60 / 60 ) % 24
71
+ const difMin = Math.floor(remainTime / 1000 / 60) % 60
72
+ const difSec = Math.floor(remainTime / 1000) % 60
73
+
74
+ //残りの日時を上書き
75
+ document.getElementById("countdown-day").textContent = difDay
76
+ document.getElementById("countdown-hour").textContent = difHour
77
+ document.getElementById("countdown-min").textContent = difMin
78
+ document.getElementById("countdown-sec").textContent = difSec
79
+
80
+ //指定の日時になったら、
81
+ if (remainTime < 0) {
82
+ // カウントを止めて
83
+ clearInterval(countdown);
84
+ // メッセージを表示する
85
+ const countdownArea = document.getElementById('countdownArea'); // 追加
86
+ countdownArea.innerHTML = '終了いたしました'; // 追加
87
+ }
88
+
89
+ }, 1000)//1秒間に1度処理
90
+ ```
43
91
 
44
92
 
45
-

1

コードを見やすく修正しました

2022/11/21 09:26

投稿

tokiki
tokiki

スコア1

test CHANGED
File without changes
test CHANGED
@@ -5,19 +5,16 @@
5
5
  以下のURLを見て設定いたしました。
6
6
  https://mgmgblog.com/?p=2595
7
7
  ### 該当のソースコード
8
-
9
- ◇HTML
8
+ ```html
10
9
  <div id="countdownArea" class="countdown">
11
10
  <span id="countdown-day"></span>日
12
11
  <span id="countdown-hour"></span>時間
13
12
  <span id="countdown-min"></span>分
14
13
  <span id="countdown-sec"></span>秒
15
14
  </div>
16
-
17
-
18
- ◇javascript
15
+ ```
19
16
  ※3行目を書き換えればよいようなのですが、うまくいきませんでした。
20
- <script>
17
+ ```js
21
18
  let countdown = setInterval(function(){
22
19
  const now = new Date() //今の日時
23
20
  const target = new Date(now.getFullYear(), now.getMonth() + 1, 0,'23','59','59') //ターゲット日時を取得
@@ -42,5 +39,7 @@
42
39
  if(remainTime < 0) clearInterval(countdown)
43
40
 
44
41
  }, 1000) //1秒間に1度処理
45
- </script>
42
+ ```
46
43
 
44
+
45
+