簡體   English   中英

簡單的倒數計時器

[英]Simple countdown timer

我想創建一個簡單的倒數計時器,我發現它只能在幾秒鍾內工作,我想增加小時:分鍾:秒...

如何為hh:mm:ss設置相同的計時器

<script type="text/javascript">
    var seconds;
    var temp;
    function countdown() {
        seconds = document.getElementById('countdown').innerHTML;
        seconds = parseInt(seconds, 10);
        if (seconds == 1) {
            temp = document.getElementById('countdown');
            temp.innerHTML = "00";
            return;
        }
        seconds--;
        temp = document.getElementById('countdown');
        temp.innerHTML = seconds;
        timeoutMyOswego = setTimeout(countdown, 1000);
    }
    countdown();
</script>

 var seconds; var temp; function countdown() { time = document.getElementById('countdown').innerHTML; timeArray = time.split(':') seconds = timeToSeconds(timeArray); if (seconds == '') { temp = document.getElementById('countdown'); temp.innerHTML = "00:00:00"; return; } seconds--; temp = document.getElementById('countdown'); temp.innerHTML = secondsToTime(seconds); timeoutMyOswego = setTimeout(countdown, 1000); } function timeToSeconds(timeArray) { var minutes = (timeArray[0] * 60) + (timeArray[1] * 1); var seconds = (minutes * 60) + (timeArray[2] * 1); return seconds; } function secondsToTime(secs) { var hours = Math.floor(secs / (60 * 60)); hours = hours < 10 ? '0' + hours : hours; var divisor_for_minutes = secs % (60 * 60); var minutes = Math.floor(divisor_for_minutes / 60); minutes = minutes < 10 ? '0' + minutes : minutes; var divisor_for_seconds = divisor_for_minutes % 60; var seconds = Math.ceil(divisor_for_seconds); seconds = seconds < 10 ? '0' + seconds : seconds; return hours + ':' + minutes + ':' + seconds; } countdown(); 
 <div id="countdown">01:02:15</div> 

對於計時器的每個部分,您可能具有不同的變量和不同的內部html,例如“ hh”的小時數,“ mm”的分鍾數和“ ss”的秒數..對於每個步驟,請將內部html設置為等於變量。

用某個數字初始化小時數,當其他數字為零時將其倒數1,同時使分鍾和秒等於59,並按照上面添加的代碼開始倒數秒數,然后分鍾數也一樣秒關系(當秒為零且分鍾不為零時,倒數分鍾加1)。 最后,如果所有變量均為零,則返回。希望這會有所幫助。

您沒有說要遞增計數還是遞減計數,因此這里提供了兩種解決方案,只需獲取所需代碼的一部分即可:

(提琴: http : //jsfiddle.net/Luc4oqo8/2/

(我在這里使用jQuery,您也應該使用它,因為它很棒)

HTML:

<div id="counter_up">
    <p id="h">00</p>:<p id="m">00</p>:<p id="s">00</p>
</div>
<div id="counter_dn">
    <p id="h">00</p>:<p id="m">00</p>:<p id="s">00</p>
</div>

JS:

var h_up = GetElementInsideContainer ("counter_up", "h");
var m_up = GetElementInsideContainer ("counter_up", "m");
var s_up = GetElementInsideContainer ("counter_up", "s");

var h_dn = GetElementInsideContainer ("counter_dn", "h");
var m_dn = GetElementInsideContainer ("counter_dn", "m");
var s_dn = GetElementInsideContainer ("counter_dn", "s");

// THIS COUNTS UP
setInterval ( function()
{
    if (parseInt(s_up.innerHTML) < 59)
    {
        s_up.innerHTML = parseInt(s_up.innerHTML) + 1;
        if (parseInt(s_up.innerHTML) < 10)
            s_up.innerHTML = "0" + s_up.innerHTML;
    }
    else
    {
        s_up.innerHTML = 0;

        if (parseInt(m_up.innerHTML) < 59)
        {
            m_up.innerHTML = parseInt(m_up.innerHTML) + 1;
            if (parseInt(m_up.innerHTML) < 10)
                m_up.innerHTML = "0" + m_up.innerHTML;
    }
    else
    {
        m_up.innerHTML = 0;

            if (parseInt (h_up.innerHTML) < 23)
            {
                h_up.innerHTML = parseInt(h_up.innerHTML) + 1;
                if (parseInt(h_up.innerHTML) < 10)
                    h_up.innerHTML = "0" + h_up.innerHTML;
            }
            else
            {
                h_up.innerHTML = m_up.innherHTML = s_up.innerHTML = 0;
            }
        };
    }
}, 1000);

// THIS COUNTS DOWN
setInterval ( function()
{
    if (parseInt(s_dn.innerHTML) > 0)
    {
        s_dn.innerHTML = parseInt(s_dn.innerHTML) - 1;
        if (parseInt(s_dn.innerHTML) < 10)
            s_dn.innerHTML = "0" + s_dn.innerHTML;
    }
    else
    {
        s_dn.innerHTML = 59;

        if (parseInt(m_dn.innerHTML) > 0)
        {
            m_dn.innerHTML = parseInt(m_dn.innerHTML) - 1;
            if (parseInt(m_dn.innerHTML) < 10)
                m_dn.innerHTML = "0" + m_dn.innerHTML;
        }
        else
        {
            m_dn.innerHTML = 59;

            if (parseInt (h_dn.innerHTML) > 0)
            {
                h_dn.innerHTML = parseInt(h_dn.innerHTML) - 1;
                if (parseInt(h_dn.innerHTML) < 10)
                    h_dn.innerHTML = "0" + h_dn.innerHTML;
            }
            else
            {
                h_dn.innerHTML = 23;
                m_dn.innherHTML = s_dn.innerHTML = 59;
            }
        };
    }
}, 1000);

// Very useful, got it from here: http://stackoverflow.com/questions/7171483/simple-way-to-get-element-by-id-within-a-div-tag
function GetElementInsideContainer(containerID, childID) 
{
    var elm = {};
    var elms =     document.getElementById(containerID).getElementsByTagName("*");
    for (var i = 0; i < elms.length; i++)
    {
        if (elms[i].id === childID)
        {
            elm = elms[i];
            break;
        }
    }
    return elm;
}

CSS:

p
{
    display: inline-block;
}

如果您有秒數,請按照以下步驟獲取小時和分鍾

            var hours = parseInt( Your seconds here / 3600 ) % 24;
            var minutes = parseInt( Your seconds here / 60 ) % 60;
            var seconds = Your seconds here % 60;

這是您在HH:MM:SS的完整時間

            var result = (hours < 10 ? "0" + hours : hours) + ":" + (minutes < 10 ? "0" + minutes : minutes) + ":" + (seconds  < 10 ? "0" + seconds : seconds); 

排序和甜蜜的方法

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM