简单的倒数计时器

时间:2015-08-18 08:47:53

标签: javascript jquery html5 countdowntimer

我想创建一个简单的倒数计时器,我发现它的工作时间只有几秒钟,我想加几小时:分钟:秒......

如何为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>

4 个答案:

答案 0 :(得分:0)

对于计时器的每个部分,您可能有不同的变量和不同的内部html作为“hh”的小时数,“mm”的分钟数和“ss”的秒数。并且对于每个步骤设置内部htmls等于变量

用一些数字初始化小时数,当其他数字为零时将其倒数1,同时使得分钟和秒数等于59并开始倒数秒,就像上面添加的代码一样,那么同样的事情就是分钟 - 秒关系(当秒为零且分钟不是零倒数分钟时)。如果所有变量都为零,最后返回.. 希望这会有所帮助..

答案 1 :(得分:0)

你没有说你是想要数上还是下来所以这里是两者的解决方案,只需要你需要的部分代码:

(小提琴: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;
}

答案 2 :(得分:0)

  

如果你有秒来得到小时和分钟如下

            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); 
  

排序和甜蜜的方法

答案 3 :(得分:0)

&#13;
&#13;
app.config(function($mdThemingProvider) {
    $mdThemingProvider.definePalette('accent', {
    '50': '#FFEB3B',
    '100': '#FFEB3B',
    '200': '#FFEB3B',
    '300': '#FFEB3B',
    '400': '#FFEB3B',
    '500': '#FFEB3B',
    '600': '#FFEB3B',
    '700': '#FFEB3B',
    '800': '#FFEB3B',
    '900': '#FFEB3B',
    'A100': '#FFEB3B',
    'A200': '#FFEB3B',
    'A400': '#FFEB3B',
    'A700': '#FFEB3B',
    'contrastDefaultColor': 'dark',    // whether, by default, text (contrast)
                                        // on this palette should be dark or light
    'contrastDarkColors': ['50', '100', //hues which contrast should be 'dark' by default
     '200', '300', '400', 'A100'],
    'contrastLightColors': undefined
 });

    $mdThemingProvider.definePalette('primary', {
    '50': '#FFEB3B',
    '100': '000000',
    '200': '000000',
    '300': '000000',
    '400': '#FFEB3B',
    '500': '000000',
    '600': '000000',
    '700': '000000',
    '800': '000000',
    '900': '#FFEB3B',
    'A100': '#FFFFFF',
    'A200': '000000',
    'A400': '000000',
    'A700': '#FFEB3B',
    'contrastDefaultColor': 'light',    // whether, by default, text (contrast)
                                        // on this palette should be dark or light
    'contrastDarkColors': ['50', '100', //hues which contrast should be 'dark' by default
     '200', '300', '400', 'A100'],
    'contrastLightColors': []

  });


  $mdThemingProvider.theme('default')
    .primaryPalette('primary')
    .accentPalette('accent');
});
&#13;
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();
&#13;
&#13;
&#13;