javascript - javascript倒数计时器删除小时分钟秒..过期后
问题描述
我对javascript很陌生,我不知道如何删除倒计时的过期部分。例如,当倒计时完成天数时,它将删除天数,然后将删除小时数等,直到达到“过期”点
这是JS代码:
var items = document.querySelectorAll('#clock');
for (var i = 0, len = items.length; i < len; i++) {
(function () {
var e = new Date("2018-12-31").getTime(),
t = this.querySelector("[data-js=countdown]"),
n = this.querySelector("[data-js=countdown-endtext]"),
day = this.querySelector("[data-js=countdown-day]"),
hour = this.querySelector("[data-js=countdown-hour]"),
min = this.querySelector("[data-js=countdown-minute]"),
sec = this.querySelector("[data-js=countdown-second]"),
s = this.gjs_countdown_interval;
s && s && clearInterval(s);
var l = function (e, t, n, s) {
day.innerHTML = e < 10 ? "0" + e : e,
hour.innerHTML = t < 10 ? "0" + t : t,
min.innerHTML = n < 10 ? "0" + n : n,
sec.innerHTML = s < 10 ? "0" + s : s
},
u = function () {
var day = (new Date).getTime(),
hour = e - day,
min = Math.floor(hour / 864e5),
sec = Math.floor(hour % 864e5 / 36e5),
s = Math.floor(hour % 36e4 / 6e4),
u = Math.floor(hour % 6e4 / 1e3);
l(min, sec, s, u), hour < 0 && (clearInterval(c),
n.innerHTML = "EXPIRED",
t.style.display = "none",
n.style.display = "")
};
if (e) {
var c = setInterval(u, 1e3);
this.gjs_countdown_interval = c,
n.style.display = "none",
t.style.display = "", u()
} else l(0, 0, 0, 0)
}.bind(items[i]))();
}
HTML:
<section class="flex-sect">
<div id="clock" class="countdown">
<span data-js="countdown" class="countdown-cont">
<div class="countdown-block">
<div data-js="countdown-day" class="countdown-digit"></div>
<div class="countdown-label">days</div>
</div>
<div class="countdown-block">
<div data-js="countdown-hour" class="countdown-digit"></div>
<div class="countdown-label">hours</div>
</div>
<div class="countdown-block">
<div data-js="countdown-minute" class="countdown-digit"></div>
<div class="countdown-label">minutes</div>
</div>
<div class="countdown-block">
<div data-js="countdown-second" class="countdown-digit"></div>
<div class="countdown-label">seconds</div>
</div>
</span>
<span data-js="countdown-endtext" class="countdown-endtext"></span>
</div>
</section>
非常感谢你们的帮助
解决方案
您可以检查一个时间段是否 = 0,并且所有较大的时间段也是 0。
if (day == 0) {
day.innerHTML = "";
}
if (day == 0 && hour == 0) {
hour.innerHTML = "";
}
if (day == 0 && hour == 0 && min == 0) {
min.innerHTML = "";
}
if (day == 0 && hour == 0 && min == 0 && sec == 0) {
sec.innerHTML = "";
n.innerHTML = "Expired";
}
推荐阅读
- python - 如何在 attoti 的 where 条件下设置日期?
- c# - 有没有办法在 Clear() 之前不输入 Console 来使用它?
- python - Python 可以实例化一个变量并同时返回它的值或引用吗?
- node.js - ibmcloud-appid:nodejs 如何进行本地开发与在 IBM Cloud 中运行?
- android - 我在计算器末尾得到“.0”
- angular - 为什么异步管道在出错后继续发出值?
- parallel-processing - Pytorch:W ParallelNative.cpp:206
- https - 当测试通过 HTTPS 时,如何将 SSL 证书插入 bitbucket-pipelines.yml 文件?
- matlab - 如何在 MATLAB 中将 symfun 转换为字符串
- haskell - Haskell中无限列表的元素