2017-06-03 10 views
1

私はゲームを構築しているので、カウンターが必要です。カウンターはonclickを開始する必要があり、終了すると00(1mから00)を停止します(今はオンロードを開始し、00に達すると再び開始します)。JS時計の問題、onclickを開始する

HTML:

<body> 
<div> 
<div class="timer" >Battle time: <span id="time"></span></div> 
<p>BATTLE</p> 
<BUTTON class="begin" onclick="" ><b>START</b></BUTTON> 
</div> 
</body> 

JS:

function startTimer(duration, display) { 
    var timer = duration, minutes, seconds; 
    setInterval(function() { 
     minutes = parseInt(timer/60, 10); 
     seconds = parseInt(timer % 60, 10); 

     minutes = minutes < 10 ? "0" + minutes : minutes; 
     seconds = seconds < 10 ? "0" + seconds : seconds; 

     display.textContent = minutes + ":" + seconds; 

     if (--timer < 0) { 
      timer = duration; 
     } 
    }, 1000); 
} 

window.onload = function() { 
    var oneMinutes = 60 * 1, 
     display = document.querySelector('#time'); 
    startTimer(oneMinutes, display); 
}; 

答えて

0

あなたが00に到達.ANDこの

onclick="startTimer(60,document.querySelector('#time'))" 

function startTimer(duration, display) { 
 
    var timer = duration, 
 
    minutes, seconds; 
 
var timers = setInterval(runner, 1000); 
 
function runner() { 
 
    minutes = parseInt(timer/60, 10); 
 
    seconds = parseInt(timer % 60, 10); 
 

 
    minutes = minutes < 10 ? "0" + minutes : minutes; 
 
    seconds = seconds < 10 ? "0" + seconds : seconds; 
 

 
    display.textContent = minutes + ":" + seconds; 
 

 
    if (--timer < 0) { 
 
     clearInterval(timers) 
 
    } 
 
    } 
 

 
} 
 

 
window.onload = function() { 
 
    var oneMinutes = 60 * 1, 
 
    display = document.querySelector('#time'); 
 
    startTimer(oneMinutes, display); 
 
};
<body> 
 
    <div> 
 
    <div class="timer">Battle time: <span id="time"></span></div> 
 
    <p>BATTLE</p> 
 
    <BUTTON class="begin" onclick="startTimer(60,document.querySelector('#time'))"><b>START</b></BUTTON> 
 
    </div> 
 
</body>

のようにクリック機能を適用した後、 clearintervalが必要
0

あなたは間隔を停止するclearIntervalを使用することができます。

function startTimer(duration, display) { 
    var timer = duration, minutes, seconds; 
    var handler = setInterval(function() { 
     minutes = parseInt(timer/60, 10); 
     seconds = parseInt(timer % 60, 10); 

     minutes = minutes < 10 ? "0" + minutes : minutes; 
     seconds = seconds < 10 ? "0" + seconds : seconds; 

     display.textContent = minutes + ":" + seconds; 

     if (--timer < 0) { 
      clearInterval(handler); 
     } 
    }, 1000); 
} 
関連する問題