gpt4 book ai didi

带 cookies 的 JavaScript 倒计时器一分钟后停止

转载 作者:行者123 更新时间:2023-12-03 08:10:55 25 4
gpt4 key购买 nike

我有这个倒计时器。由于某种原因,它在一分钟后停止计数 - 它就停止了。如果我数 55 分钟,就会在 54:00 停止如果我数 2 分钟,就会在 1:00 停止有什么想法如何解决这个问题,使其继续为零?

这是 JSFiddle 链接:Countdown timer with cookies

以及 JS 代码:

function countdown(minutes) {
var seconds = 60;
var mins = minutes;

if(getCookie("minutes")&&getCookie("seconds"))
{
var seconds = getCookie("seconds");
var mins = getCookie("minutes");
}

function tick() {

var counter = document.getElementById("timer");
setCookie("minutes",mins,10)
setCookie("seconds",seconds,10)
var current_minutes = mins-1
seconds--;
counter.innerHTML =
current_minutes.toString() + ":" + (seconds < 10 ? "0" : "") + String(seconds);
//save the time in cookie



if( seconds > 0 ) {
setTimeout(tick, 1000);
} else {

if(mins > 1){

// countdown(mins-1); never reach “00″ issue solved:Contributed by Victor Streithorst
setTimeout(function () { countdown(mins - 1); }, 1000);

}
}
}
tick();
}
function setCookie(cname,cvalue,exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays*24*60*60*1000));
var expires = "expires=" + d.toGMTString();
document.cookie = cname+"="+cvalue+"; "+expires;
}
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i=0; i<ca.length; i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1);
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
countdown(55);

最佳答案

我不知道你为什么在这里使用cookie,但是,抛开这一点,你的问题似乎是以下几行:

var seconds = getCookie("seconds");
var mins = getCookie("minutes");

在您的代码中,完成第一分钟后,您会再次调用倒计时函数,并减少一分钟。但是,上面的行将分钟变量返回到其先前的值。所以一分钟过去后你最终会陷入同一分钟。

所以,我认为,您只需要从 cookie 中获取一次时间(第一次倒计时运行)。你可以使用这样的东西:

var firstTime = true;

function countdown(minutes) {
var seconds = 60;
var mins = minutes;

if(firstTime && getCookie("minutes")&&getCookie("seconds"))
{
firstTime = false;
seconds = getCookie("seconds");
mins = getCookie("minutes");
}
...

Note that var is unnecessary in the if clause since you already defined seconds and mins variables.

关于带 cookies 的 JavaScript 倒计时器一分钟后停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34152786/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com