Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在按下“后停止运行时间”;停止“;秒表_Javascript_Html_Function_Event Handling_Stopwatch - Fatal编程技术网

Javascript 如何在按下“后停止运行时间”;停止“;秒表

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

我已经创造了这个秒表,它运行得很好。我唯一的问题是,每当我点击我的“停止”按钮,时间在屏幕上停止,但它仍然在后台运行

有没有办法阻止这种事情发生?我希望计时器在其当前时间停止,然后当我单击“开始”时,它将从其停止的时间恢复

我想在update函数之前创建一个“new Date()”变量,在update函数内部创建另一个“new Date()”变量,然后减去这些变量,得到当前日期。但我也不明白

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() );