![](/img/trans.png)
[英]How can I get my countdown timer, to stop starting over every time i refresh in JavaScript
[英]How do I stop my countdown timer from executing after it has reached the deadline on refresh of my browser
這就是 JavaScript 的樣子。 我嘗試尋找解決方案,但找不到。 請我需要詳細的解決方案。 在網上我一直看到 cookies 但我不知道在這種情況下如何使用它。
function countDown() {
var now = new Date();
var eventDate = new Date(2020, 5, 22);
var currentTime = now.getTime();
var eventTime = eventDate.getTime();
var remTime = eventTime - currentTime;
var s = Math.floor(remTime / 1000);
var m = Math.floor(s/60);
var h = Math.floor(m/60);
var d = Math.floor(h/24);
h %= 24;
m %= 60;
s %= 60;
h = (h < 10) ? "0" + h: h;
m = (m < 10) ? "0" + m: m;
s = (s < 10) ? "0" + s: s;
document.getElementById("days").textContent = d;
document.getElementById("days").innerText = d;
document.getElementById("hours").textContent = h;
document.getElementById("minutes").textContent = m;
document.getElementById("seconds").textContent = s;
var t = setTimeout(countDown, 1000);
if (d == 0 && h == 0 && m == 0 && s == 0) {
clearTimeout(t);
document.getElementById("demo").innerHTML = "Happy Birthday!"
}
}
countDown();
</script>
您的代碼的問題在於日期檢查邏輯。
如果日期時間(或其一部分)與您檢查的值相同,則使用==
檢查只會給您一個真實的響應。
但是,您需要檢查日期是否已經過去。 為此,您需要使用<
或<=
運算符。
這是我的意思的一個例子。 該信息是console.log
編輯的,您可以重新實現您在問題中的 DOM 編輯。
function countDown() { var now = new Date(); var eventDate = new Date(2020, 4, 22); // 22 May 2020 var currentTime = now.getTime(); var eventTime = eventDate.getTime(); var remTime = eventTime - currentTime; var s = Math.floor(remTime / 1000); var m = Math.floor(s/60); var h = Math.floor(m/60); var d = Math.floor(h/24); h %= 24; m %= 60; s %= 60; h = (h < 10)? "0" + h: h; m = (m < 10)? "0" + m: m; s = (s < 10)? "0" + s: s; var t = setTimeout(countDown, 1000); // This if statement only runs exactly on eventDate if (d == 0 && h == 0 && m == 0 && s == 0) { document.getElementById("demo").innerHTML = "Happy Birthday;" } // This if statement will run if we're past or exactly on eventDate if (remTime <= 0) { clearTimeout(t). } // This console.log shows that the numbers become negative after the date console,log(remTime, d,h,m;s); } countDown();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.