Javascript 快进定时器
我在快进计时器方面遇到了问题。这是一个非常基本的体育场。我有一个加数字的间隔。像这样:Javascript 快进定时器,javascript,timer,setinterval,Javascript,Timer,Setinterval,我在快进计时器方面遇到了问题。这是一个非常基本的体育场。我有一个加数字的间隔。像这样: setInterval(function () { //+1 second //Format output to 00:00 //Handle minute update }, 1000); 这很好用。计时器以正常速度运行。我想做的是快速转发这个计时器。我想要一个计时分钟,以1秒为单位。我试过: setInterval(function () { //+1 second
setInterval(function () {
//+1 second
//Format output to 00:00
//Handle minute update
}, 1000);
这很好用。计时器以正常速度运行。我想做的是快速转发这个计时器。我想要一个计时分钟,以1秒为单位。我试过:
setInterval(function () {
//+1 second
//Format output to 00:00
//Handle minute update
}, 15);
这有时有效,有时无效。有时它会在01:02而不是01:00停止。也许是我缺乏数学知识,但我不知道。你会怎么做?我将每“计时器分钟”停止并启动计时器,因此间隔正确是很重要的
编辑
下面是我希望它如何工作的一些细节:
编辑2
也许我应该在停止计时器时调整时间
编辑3
看起来15毫秒在大多数情况下都有效。但是有些东西使ut不可靠,我认为最好的方法就是调整时间。我认为你应该做的是将间隔存储在一个变量中,以便清除它,然后以不同的延迟重新开始
var delay = 1000; // JavaScript uses milliseconds, so 1000 = 1 second
var theTimer = '';
function startTimer(){
theTimer = setInterval(function () {
// Do awesome stuff here
}, delay);
}
startTimer();
现在,如果要更改间隔或快进计时器,只需清除当前的setInterval
,然后重新定义它-
clearInterval(theTimer); // stop and clear the current timer
delay = 500; // Crank it up to twice the speed! 0.5 seconds!
startTimer(); // start a new setInterval();
函数myTimer(){
这个.startTime=0;
这个。有效期=0;
此.timePassed=0;
这个乘数=1;
this.outputElement=null;
this.start=函数(){
clearInterval(此为有效期);
此.timePassed=0;
this.outputElement=document.getElementById(“输出”);
this.startTime=新日期();
var me=这个;
this.intervalID=setInterval(函数(){
更新(我);
},100);
}
this.toTwoDigit=函数(num){
如果(numOk,那么我将自己回答这个问题。我认为我不够清楚。当我启动计时器时,超时同时开始,一秒钟后计时器停止。这就是它出错的地方,计时器停止时并不总是显示01:00
因此,最终的解决方案是每次停止时将秒数设置为00,因为这一切发生得太快了,你不会注意到
setTimeout(function () {
clearInterval(interval);
$('.clock').html(rMin.slice(-2) + ':00');
}, 1000);
检查我的最新小提琴:
15毫秒的间隔真的很短……你确定要这么短吗?呵呵,我知道它很短,但它很好,因为你可以看到它是如何“快速转发”的.我的想法是这样的1000/60=16.666。但是当我把它作为时间间隔时,它太快了,所以我选择了15。当然。我存储了时间间隔,并且我有不同的停止、启动和快进功能。你的代码只会使它快一倍。我希望我的计时器在一秒钟内从0变为60。我还希望显示大多数se康兹,就像曲棍球钟在最后一分钟,如果你知道我的意思的话。你说:“有时有效,有时无效。有时它在01:02而不是01:00停止”但是在你的代码中,你在哪里停止计时器?我用timercode更新了我的答案,显示了如何实现它,更改了add time值。如果你需要在一分钟过去后提出一个,那么我也可以在那里实现它。
setTimeout(function () {
clearInterval(interval);
$('.clock').html(rMin.slice(-2) + ':00');
}, 1000);