Javascript 如何在按下“后停止运行时间”;停止“;秒表
我已经创造了这个秒表,它运行得很好。我唯一的问题是,每当我点击我的“停止”按钮,时间在屏幕上停止,但它仍然在后台运行 有没有办法阻止这种事情发生?我希望计时器在其当前时间停止,然后当我单击“开始”时,它将从其停止的时间恢复 我想在update函数之前创建一个“new Date()”变量,在update函数内部创建另一个“new Date()”变量,然后减去这些变量,得到当前日期。但我也不明白Javascript 如何在按下“后停止运行时间”;停止“;秒表,javascript,html,function,event-handling,stopwatch,Javascript,Html,Function,Event Handling,Stopwatch,我已经创造了这个秒表,它运行得很好。我唯一的问题是,每当我点击我的“停止”按钮,时间在屏幕上停止,但它仍然在后台运行 有没有办法阻止这种事情发生?我希望计时器在其当前时间停止,然后当我单击“开始”时,它将从其停止的时间恢复 我想在update函数之前创建一个“new Date()”变量,在update函数内部创建另一个“new Date()”变量,然后减去这些变量,得到当前日期。但我也不明白 start=document.getElementById('start'); stop=docume
start=document.getElementById('start');
stop=document.getElementById('stop');
让watchRunning=false;
Start.addEventListener('click',startHandler);
Stop.addEventListener('click',stopHandler);
函数startHandler(){
如果(!watchRunning){
watchRunning=setInterval(更新,70);
}
}
函数stopHandler(){
clearInterval(监视运行);
watchRunning=null;
}
更新();
var秒;
var毫秒;
变量d;
函数更新(){
d=新日期();
秒=d.getSeconds();
毫秒=Math.floor((d.getmillizes()/10));
如果(毫秒<10和秒<10){
document.getElementById(“Time”).innerHTML=
“0”+秒+“0”+毫秒;
}else if(毫秒<10&&seconds>=10){
document.getElementById(“Time”).innerHTML=
秒+“.0”+毫秒;
}否则,如果(毫秒>=0&&s<10){
document.getElementById(“Time”).innerHTML=
“0”+秒+“+毫秒;
}否则,如果(毫秒>=0和秒>=10){
document.getElementById(“Time”).innerHTML=
秒+“+”毫秒;
}
}
#时间{
背景颜色:黄色;
最大宽度:2.3%;
}
秒表
开始
停止
运行时间:
clearTime变量由setTimeout()计时方法作为一个值返回,它可以作为一个ID传递给clearTimeout(ID)以引用它-clearTimeout(clearTime)
工作原理
每当对处于活动状态的setTimeout()计时方法调用clearTimeout()计时方法时,clearTimeout()计时方法将停止setTimeout()计时方法的执行,但不会完全破坏其执行
setTimeout()计时方法在调用clearTimeout()计时方法期间处于空闲状态,当您重新执行setTimeout()计时方法时,它将从停止执行的点开始,而不是从头开始
你可以走了 您应该使用
设置间隔
运行代码来更新秒表,而不是依赖日期
;您无法阻止日期的更改,因此即使您停止更新秒表,秒数仍在滴答作响,这让您的秒表看起来从未停止过
#时间{
背景颜色:黄色;
最大宽度:2.3%;
}
秒表
开始
停止
运行时间:
00:00
var start=document.getElementById('start')、stop=document.getElementById('stop')、time=document.getElementById('time');
功能秒表(道具){
this.seconds=props.seconds | | 0;
this.millizes=props.millizes | | 0;
this.updateCallback=props.updateCallback;
这是.\u running=false;
}
秒表。原型={
开始:函数(){
var_this=这个;
如果(!\u此.\u正在运行){
_这是._running=true;
_此._intervalID=window.setInterval(函数(){
如果(+++u this.millizes==100){
_这个.seconds++;
_这是1.5毫秒=0;
}
if(_this.updateCallback){
_this.updateCallback(_this.millizes,_this.seconds);
}
}, 10);
}
},
停止:函数(){
window.clearInterval(此.\u有效);
这是.\u running=false;
},
getTimeString:函数(){
var ms=this.millizes,s=this.seconds;
如果我把它放在我的代码中的什么地方?无论我在哪里插入它,它都会使我的计时器消失。
clearTimeout( return ID of setTimeout() );