我编写了这个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;"> </h1>
<div id="minute1Box"></div>
<div id="sekunde1Box"></div>
</div>
答案 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;
}