gpt4 book ai didi

javascript - 多个倒计时器

转载 作者:行者123 更新时间:2023-12-02 13:45:09 25 4
gpt4 key购买 nike

这个 js 倒计时器工作正常,但在多个计时器上它只对最后一个 div 起作用。它将如何在所有 div 上运行?它应该适用于所有 div,因为会有两个以上的计时器。任何指导将不胜感激。

这是我的代码:

Fiddle

HTML 和 JS。

    <div id="timez1"></div>
<div id="timez2"></div>

var m = 1;
function countdowny(){
if(daysy == 0 && hoursy == 0 && minutesy == 0 && secondsy == 0){
//seconds = 0;
timez.innerHTML = "Auction Ended";
}
else{
if(secondsy == 0){
secondsy = 59;
minutesy--;
}else{
secondsy--;
}
if(minutesy == -1){
minutesy = 59;
hoursy--;
}
if(hoursy == -1){
hoursy = 23;
daysy--;
}
if(daysy == -1){
daysy = 0;
}

timez.innerHTML = "<span class=''>"+daysy+"D</span><span class=''> "+hoursy+"H</span><span class=''> "+minutesy+"M</span><span class=''> "+secondsy+"S</span>";
setTimeout(countdowny,1000);
}
}

var daysy=3;hoursy=3;minutesy=3;secondsy=3;
var timez = document.getElementById("timez"+m);
countdowny();
m++;

var daysy=2;hoursy=2;minutesy=2;secondsy=2;
var timez = document.getElementById("timez"+m);
countdowny();
m++;

最佳答案

首先,我认为整个设计都被破坏了。您应该考虑重用现有的倒计时小部件。 (The simplest possible JavaScript countdown timer?)

在您的具体情况下,问题是您的 setTimeout。它将一次又一次地运行您的倒计时方法,但始终使用全局变量。

因此,您需要重构并将要更新的元素(以及剩余时间)放入倒计时函数中。

function countdowny(element, remainingTime) {
if(remainingTime.daysy == 0 && remainingTime.hoursy == 0 && remainingTime.minutesy == 0 && remainingTime.secondsy == 0){
//seconds = 0;
element.innerHTML = "Auction Ended";
}
else{
//Calc date as before
element.innerHTML = "<span class=''>"+remainingTime.daysy+"D</span><span class=''> "+remainingTime.hoursy+"H</span><span class=''> "+remainingTime.minutesy+"M</span><span class=''> "+remainingTime.secondsy+"S</span>";
setTimeout(countdowny,1000, element, remainingTime);
}
}

var remainingTime = { daysy:3, hoursy: 3, minutesy:3, secondsy:3 };
var timez = document.getElementById("timez"+m);
countdowny(timez, remainingTime);

关于javascript - 多个倒计时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41464114/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com