<概要>
カウントダウンタイマーを作ったのですが、ブラウザで数字の部位がNaNと表示され動きませんでした(htmlのデザインは反映)。打ち間違いや関数など再チェックを何度も試みましたが変わりませんでした。function countDown(){の中でconsole.log(timeLeft);を試みましたがconsoleでも何も表記されませんでした。
js
1(function(){ 2 'use strict';//エラーチチェック 3 4 var timer = document.getElementById('timer'); 5 var min = document.getElementById('min'); 6 var sec = document.getElementById('sec'); 7 var reset = document.getElementById('reset'); 8 var start = document.getElementById('start');//宣言した変数をいじるという宣言 9 10 var startTime; 11 var timeLeft; 12 var timeToCountDown=4*1000;//タイマーの最大 13 var elapsedTime=Date.now()-startTime; 14 15 function updateTimer(t){//残り時間を実際ブラウザに表示させる 16 var d =new Date(t); 17 var m =d.getMinutes(); 18 var s =d.getSeconds(); 19 var ms =d.getMilliseconds(); 20 timer.textContent=m+":"+s+"."+ms;//ブラウザに残り時間を表記 21 } 22 23 function countDown(){ 24 setTimeout(function(){ 25 timeLeft=timeToCountDown-elapsedTime; 26 updateTimer(timeLeft); 27 countDown();//関数の実行 28 },10);//タイマー処理、10ミリ秒後 29 30 } 31 start.addEventListener('click',function(){//イベントを設定 32 startTime=Date.now();//クリックするとその時の時間がDate.now()になる 33 countDown();//関数の実行 34 }); 35})();
html
1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="utf-8"> 5 <title>Timer</title> 6 <link rel="stylesheet" href="css/style.css"> 7</head> 8<body> 9 <div id="timer">00:00.000</div> 10 <div class="controls"> 11 <button id="min">Min</button> 12 <button id="sec">Sec</button> 13 <button id="reset">Reset</button> 14 <button id="start">Start</button> 15 </div> 16 <script src="js/main.js"></script> 17</body> 18</html>
回答2件
あなたの回答
tips
プレビュー