2014-02-21 39 views
0

我編寫了這個js/jquery倒計時。如果時間差爲0,我的計時器在00:00凍結並保持1:30分鐘並變爲紅色字體,我該怎麼做? 例如:維持時間00:05,5秒後它是00:00(紅色字體),並保持1:30分鐘。Javascript/jquery倒計時在00:00凍結

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

首先,你並不需要在所有清除計時器,因爲你正在使用setTimeout,這是一個火一次計時器。

您需要而不是撥打setTimeout倒計時完成或時間差達到您的閾值1500秒。我會做這樣的:

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

其次,要回答你原來的問題,當時間已經達到零,只需將CSS類的Box1一些CSS類的,有一個紅色字體,並且還設置您的div元素的文本爲零。然後爲一個功能設置一個新的超時,在90秒後刪除您的Box1

順便說一下,當您設置元素的文本內容而不是html內容時,請考慮使用text()而不是html()

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; 
} 

在你的CSS文件:

.timer-warning { 
    color: #f00; 
}