var hours =0;
var mins =0;
var seconds =0;
document.getElementById('start').addEventListener('click', function(){
startTimer();
});
document.getElementById('stop').addEventListener('click', function(){
clearTimeout(timex);
});
function startTimer(){
timex = setTimeout(function(){
seconds++;
if(seconds >59){
seconds=0;
mins++;
if(mins>59) {
mins=0;hours++;
if(hours < 10) {
$("#hours").text('0'+hours+':')
} else
$("#hours").text(hours+':');
}
if(mins < 10){
$("#mins").text('0'+mins+':');
}
else $("#mins").text(mins+':');
}
if(seconds <10) {
$("#seconds").text('0'+seconds);
} else {
$("#seconds").text(seconds);
}
startTimer();
},1000);
}
个字符
我正在尝试将“播放”和“暂停”按钮替换为仅一个。所以当我点击按钮时,它会变成“暂停”,当它暂停时,它会变成“播放”,就像切换一样,但我无法让它工作,只有播放按钮继续工作,当我试图暂停计时器时,按钮图标不会改变。
HTML:
<link rel="stylesheet" href="https://pro.fontawesome.com/releases/v5.13.0/css/all.css"> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<span id="hours">00:</span>
<span id="mins">00:</span>
<span id="seconds">00</span>
<button id="start"><i class="fas fa-play" style="color:#000"></i></button>
<button id="stop"><i class="fas fa-pause" style="color:#000;"></i></button>
型
脚本:
var hours =0;
var mins =0;
var seconds =0;
document.getElementById('start').addEventListener('click', function(){
startTimer();
});
document.getElementById('stop').addEventListener('click', function(){
clearTimeout(timex);
});
function startTimer(){
timex = setTimeout(function(){
seconds++;
if(seconds >59){
seconds=0;
mins++;
if(mins>59) {
mins=0;hours++;
if(hours < 10) {
$("#hours").text('0'+hours+':')
} else
$("#hours").text(hours+':');
}
if(mins < 10){
$("#mins").text('0'+mins+':');
}
else $("#mins").text(mins+':');
}
if(seconds <10) {
$("#seconds").text('0'+seconds);
} else {
$("#seconds").text(seconds);
}
startTimer();
},1000);
}
型
将“播放”和“暂停”按钮合二为一。
1条答案
按热度按时间js81xvg61#
这是相对简单的。您只需要一个
boolean
(通常也称为标志),它指示计时器当前的状态:跑不跑。然后根据这一点,你必须像以前一样启动或停止计时器。要更改图标,可以在每个
Element
的classList
属性上使用replace()
方法。你会注意到我已经把你的变量声明从
var
改成了let
,你应该在默认情况下这样做,因为var
总是一个全局变量,一旦你的程序变大了,它会导致各种各样的问题。查看this article在不同方法上声明变量。个字符