Javascript / jquery倒计时在00:00冻结

时间:2014-02-21 17:54:02

标签: javascript jquery countdown

我编写了这个js / jquery倒计时。当我的计时器在00:00冻结并且保持1:30分钟并且更改为红色字体时,如何在时差为0时进行制作? 示例:Remainig时间00:05,5s之后是00:00(红色字体),它保持1:30分钟。

var timer1;
function cdtd1() {
    var sad1 = new Date();
    var dolazak1 = new Date(sad1.getFullYear(),sad1.getMonth(),sad1.getDate(),13,01,00);
    var timeDiff1 = dolazak1.getTime() - sad1.getTime();
    if (timeDiff1 <= 0) {
        clearInterval(timer1);
        $("#Box1").remove();
    }
    if (timeDiff1 > 1500000) {
        clearInterval(timer1);
        $("#Box1").remove();
    }


    var sekunde1 = Math.floor(timeDiff1 / 1000);
    var minute1 = Math.floor(sekunde1 / 60);
    var sati1 = Math.floor(minute1 / 60);
    var dani1 = Math.floor(sati1 / 24);
    sati1 %= 24;
    minute1 %= 60;
    sekunde1 %= 60;

    $("#dani1Box").html(dani1);
    $("#sati1Box").html(sati1 + ':');
    $("#minute1Box").html('7-Dubrava '+ minute1 + ':');
    $("#sekunde1Box").html(sekunde1);

    timer1 = setTimeout(cdtd1, 1000);
}

$(document).ready(function() {
     cdtd1();
});

这是html:

<div id="Box1">

<h1 style="font-family:Helvetica;color:#FFFFFF;font-size:5px;">&nbsp;</h1>

<div id="minute1Box"></div>

<div id="sekunde1Box"></div>

</div>

1 个答案:

答案 0 :(得分:1)

首先,您根本不需要清除计时器,因为您使用的是setTimeout,这是一次点火计时器。

完成倒计时,或者时差达到1,500秒的阈值时,您需要致电setTimeout。我会这样做:

if (timeDiff1 <= 0) {
    $("#Box1").remove();
    return;
}
if (timeDiff1 > 1500000) {
    $("#Box1").remove();
    return;
}

其次,要回答原始问题,当时间达到零时,只需将Box1的css类设置为某个具有红色字体的CSS类,并设置{{1}的文本元素为零。然后为在90秒后删除div的函数设置新的超时。

顺便说一句,在设置元素的文本内容而不是html内容时,请考虑使用Box1而不是text()

html()

在CSS文件中:

if (timeDiff1 <= 0) {
    $("#Box1").addClass("timer-warning");

    $("#dani1Box").text("0");
    $("#sati1Box").text("0:");
    $("#minute1Box").text('7-Dubrava 0:');
    $("#sekunde1Box").text("0");

    setTimeout(function() {
        $("#Box1").remove();
    }, 90000);
    return;
}