前提・実現したいこと
JavaScriptで、
window.prompt()
に入力された値から計算を行い、HTML上で1秒ごとに1秒減っていくカウントダウンタイマーを制作しようとしています。
しかし、functionの設計が甘いのか(returnがいまいちよくわかっていない。)、わかりませんが、うまくループできない&そもそも計算をしていないという現象に陥っています。
function countdown()内の、return recalcでsecondに代入し(ここのやり方がわからない)、function refreshでsecondの値を1減らし...といったループができることを想定していました。
どこが原因でプログラムが動いていないのでしょうか。何度も見直しましたが、初心者故、結局わからずじまいで…
ご教授いただけたら幸いです。
ここのサイトを使うのは初めてかつ、人にプログラムを見てもらう、方法を尋ねるというのは初めてなので、拙い部分があったらごめんなさい。
該当のソースコード
javascript
1 let minute = parseInt(window.prompt('何分測りますか')); //測りたい分数を入力 2 let second = minute * 60; //秒単位にする 3 4 function countdown(){ 5 let recalc = minute; 6 let min = Math.floor(recalc / 60); //分に直す 7 let sec = Math.floor(recalc / 60 * 10); //余りを用いて秒に直す 8 document.getElementById('min').textContent = 'min' ; //HTMLに分として表示 9 document.getElementById('sec').textContent = 'sec' ; //HTMLに秒として表示 10 console.log(minute); 11 return recalc; //returnでsecondに再代入したいが、代入する方法がわからない。多分これのせいでプログラムが動かない。 12 } 13 14 function refresh(){ 15 second -= 1; //秒のカウントを1減らす 16 setTimeout(countdown,1000); //1秒ごとに関数countdownを実行させる 17 } 18 19 while (second <= 0){ 20 refresh(); //0秒になるまで続ける 21 } 22 23 window.alert('終了')
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/01/08 00:50