【发布时间】:2017-02-26 03:06:57
【问题描述】:
// sets loop to zero
var totalTenths = 0;
var interval;
var startButton = document.querySelector('#start');
// start and pause button
document.querySelector('#start').addEventListener('click', function (e) {
var startButton = e.target;
if (startButton.innerHTML === 'Start') {
startButton.innerHTML = 'Pause';
interval = setInterval(countTimer, 10)
colorInterval = setInterval(colorTimer, 1000)
}
else if (e.target.innerHTML === 'Pause') {
startButton.innerHTML = 'Resume';
clearInterval(interval);
clearInterval(colorInterval);
// here I'm setting the 15 second restart interval
waitedTooLong = setInterval(timeout, 15000)
}
else if (startButton.innerHTML === 'Resume') {
startButton.innerHTML = 'Pause';
interval = setInterval(countTimer, 10)
colorInterval = setInterval(colorTimer, 1000)
}
});
// double click to clear function
document.querySelector('#start').addEventListener('dblclick', function(e) {
var startButton = e.target;
if (startButton.innerHTML === 'Resume') {
clearInterval(function() {
setInterval(countTimer, 10)
});
document.getElementById('tenths').innerHTML = '00';
document.getElementById('seconds').innerHTML = '00';
document.getElementById('minutes').innerHTML = '00';
document.getElementById('start').innerHTML = 'Start'
}
});
// loop that converts 10th of millisec to minute and seconds
function countTimer() {
totalTenths++;
var minutes = Math.floor(totalTenths / 6000);
var seconds = Math.floor((totalTenths - minutes * 6000) / 100);
var tenths = totalTenths - (minutes * 6000 + seconds * 100);
// replaces inner html with loop with added zero until double digits accure
if (tenths > 0) {
document.getElementById('tenths').innerHTML = '0' + tenths;
}
if (tenths > 9) {
document.getElementById('tenths').innerHTML = tenths;
}
if (tenths > 9) {
document.getElementById('seconds').innerHTML = '0' + seconds;
}
if (seconds > 9) {
document.getElementById('seconds').innerHTML = seconds;
}
if (tenths > 0) {
document.getElementById('minutes').innerHTML = '0' + minutes;
}
if (minutes > 9) {
document.getElementById('minutes').innerHTML = minutes;
}
}
<div class="text-center container">
<button id="start" class="btn btn-large btn-success">Start</button>
<p class="clear-msg">double click to clear!</p>
<div id="timer" class="well">
<span id="minutes">00</span>:<span id="seconds">00</span>:<span id="tenths">00</span>
</div>
</div>
我有一个名为 Interval 的 setInterval,它运行一个倒数计时器。我有一个开始按钮,它在第一次初始点击时播放并在第二次暂停时就好了。当我双击时,它显示计时器归零,但似乎并没有清除实际的计时器。将只在显示被零替换之前中断的地方播放。
【问题讨论】:
-
你在哪里设置间隔?向我们展示所有相关代码。
-
请不要将您的代码作为评论发布。编辑您的问题以包含所有相关代码(在本例中为 HTML 和 JavaScript)。
-
@ScottMarcus 添加到编辑中。在原始文件顶部声明了变量
-
请添加所有相关代码.... HTML 也是如此。
标签: javascript setinterval clearinterval