function CountDown(){
if(maxtime>=0){
minutes = Math.floor(maxtime/60);
seconds = Math.floor(maxtime%60);
msg = "距离结束还有"+minutes+"分"+seconds+"秒";
document.all["timer"].innerHTML=msg;
if(maxtime == 5*60)
alert('注意,还有5分钟!');
--maxtime;
}else{
clearInterval(timer);
alert("时间到,结束!");
}
}
这个倒计时现在刷新页面就会重新倒计时,现在想要的效果是刷新页面不重置,同时关闭页面倒计时依然能够自己进行,并且在倒计时结束后继续重新开始倒计时,所以直接把maxtime记录在cookie最多只能让他保留关闭页面之前的值,倒计时下次进来还是从这个时间开始,能不能让时间能够自己继续跑
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
把minitus存进cookie里,setCookie,初始化页面的时候getCookie里取值,如果没有用默认值
cookie保存结束时间。时间到了,更新结束时间的cookie加5分钟
当第一次开始倒计时时,存入倒计时开始的时间到cookie (starttime)=+( new Date() ), 思路是这样的,starttime 之后有1个倒计时为0的点,有第2个倒计时为0的点,有第3个倒计时为0的点 etc..
然后关掉页面之后,重新打开,读取cookie并检测starttime 与当前的时间的差,与倒计时持续时间进行比较,如果还在第一个倒计时里面,得到剩余时间,否则在其它倒计时周期里面,依然得到离下一个计时终点的剩余时间,然后以这个剩余时间开始计时,就这样就可以不受卸载掉页面的影响。
实现代码如下:设置的倒计时周期为MAX_TIME=1*30 seconds