我需要一个同时工作的倒数计时器

问题描述 投票:-2回答:1
  1. 嗨,大家好?我需要帮助,我想要一种情况,在一定时间后,第一个计时器应该停止计数,而第二个计时器执行并更新“BREAK TIME”,如果页面刷新,第一个计时器将不会执行,直到第二个计时器完成执行,反之亦然。 <script> let element = document.querySelector('#countdown'); let breakTime = document.querySelector("#countdownbreak"),myD=true; function TimeFii(){ time_difference = (60*1) -(((Date.now()-localStorage.getItem('realTime'))/1000) | 0); //60 if duration = 60*1 hours = (time_difference/3600) | 0; minutes = ((time_difference % 36000) / 60) | 0; seconds = (time_difference %60)|0; hours = hours<10 ? "0"+hours:hours minutes = minutes < 10 ? "0"+minutes:minutes//00 seconds = seconds <10 ?"0"+seconds:seconds uniseconds = seconds; element.textContent = minutes+":"+seconds; if(time_difference<=0){ var start = Date.now()+100;`enter code here` localStorage.setItem('realTime',start); } if(seconds==39){ stop(); resetFii(); element.innerHTML ="" localStorage.setItem('noStart',myD) startFiiTimer(TimeFiiBreak); } } function TimeFiiBreak(){ time_difference = (60*3) -(((Date.now()-localStorage.getItem('realBTime'))/1000) | 0); //60 if duration = 60*1 hours = (time_difference/3600) | 0; minutes = ((time_difference % 36000) / 60) | 0; seconds = (time_difference %60)|0; hours = hours<10 ? "0"+hours:hours minutes = minutes < 10 ? "0"+minutes:minutes//00 seconds = seconds <10 ?"0"+seconds:seconds uniseconds = seconds; breakTime.textContent = "BREAK TIME:"+minutes+":"+seconds; if(time_difference<=0){ var start = Date.now()+100; localStorage.setItem('realBTime',start); } if(seconds==40){ stopB(); resetBFii(); startFiiTimer(TimeFii); } } function startFiiTimer(fun){ return setInterval(fun,100); } function resetFii(){ return localStorage.removeItem('realTime'); } function stop(){ return clearInterval(TimeFii) } function resetBFii(){ return localStorage.removeItem('realBTime'); } function stopB(){ return clearInterval(TimeFii) } window.onload = function (){ if(myD !=false){ startFiiTimer(TimeFii); } } </script> 请上面的代码段运行,但不是我想要的,您可以访问fastplay24.com查看计时器的示例。谢谢
javascript countdown
1个回答
0
投票

setInterval()返回一个timer id,你需要在调用clearInterval()时使用它,而不是函数本身。就像是:

idtimerfii = setInterval(fun,100);

clearInterval(idtimerfii)
© www.soinside.com 2019 - 2024. All rights reserved.