1つのボタンにスタートとストップの機能をもたせたいです。
以下のコードの場合はstartボタンがそれに相当します。
startを押すとカウントアップを開始し、もう1度押すとカウントアップを停止します。もう1度押すと、途中から再度カウントアップします。
<div id="timer">00</div> <div id="start" class="btn">Start</div> <div id="reset" class="btn">Reset</div> <script> let start_bt = document.getElementById("start"); let timer = document.getElementById("timer"); let mode = false; let t = 0; let addTimer; function startTimer() { addTimer = setInterval(function() { t++; timer.textContent = t; }, 1000); } function stopTimer() { clearInterval(addTimer) } test_bt.addEventListener("click" , function() { switch(mode){ case false: stopTimer(); console.log("1"); case true: startTimer(); console.log("2"); } mode = !mode; console.log(mode); });
しかし、2度め目の押下でカウントアップが止まりませんし、なぜかカウントアップの速度が早くなります。
switchのあたりに問題点がありそうだなと検討はつくのですが、解決出来ませんでした。
どのようにコードを改善すれば良いか、ヒントを頂けますか?
回答1件
あなたの回答
tips
プレビュー