JavasCript倒计时脚本

时间:2014-03-17 11:26:33

标签: javascript

我需要一个简单的JavaScript倒计时脚本来进行测验准备。

  1. 最初的测验页面加载,倒数计时器开始30分钟
  2. 30分钟后,它会向用户显示警告信息。
  3. 以下是我正在使用的代码,但在30分钟后它会递减..

    <html>
    <head>
    <title>Countdown</title>
    <script type="text/javascript">
    
    var mins = 30;
    
    
    var secs = mins * 60;
    function countdown() {
        setTimeout('Decrement()',1000);
    }
    function Decrement() {
        if (document.getElementById) {
            minutes = document.getElementById("minutes");
            seconds = document.getElementById("seconds");
            if (seconds < 59) {
                seconds.value = secs;
            } else {
                minutes.value = getminutes();
                seconds.value = getseconds();
            }
            secs--;
            setTimeout('Decrement()',1000);
        }
    }
    function getminutes() {
        mins = Math.floor(secs / 60);
        return mins;
    }
    function getseconds() {
        return secs-Math.round(mins *60);
    }
    </script>
    </head>
    <body>
    
    <div id="timer">
        This is only valid for the next <input id="minutes" type="text" style="width: 14px; border: none; background-color:none; font-size: 16px; font-weight: bold;">  minutes and <input id="seconds" type="text" style="width: 26px; border: none; background-color:none; font-size: 16px; font-weight: bold;"> seconds.
    </div>
    <script>
    countdown();
    </script>
    

    先谢谢。

3 个答案:

答案 0 :(得分:1)

您可以使用setTimeout()函数

setTimeout(function()
{
    alert("Hello");

},3000);

这将显示一个弹出式对话框,其中包含&#39; Hello&#39; 3秒后 3000指的是毫秒,所以只需将30分钟转换为毫秒。

花括号中的代码将在达到时间限制后执行。

http://www.w3schools.com/jsref/met_win_settimeout.asp

答案 1 :(得分:1)

简单的谷歌搜索给了我很多例子和lib文件

http://flipclockjs.com/

https://mindgrader.com/tutorials/1-how-to-create-a-simple-javascript-countdown-timer

http://www.gieson.com/Library/projects/utilities/countdown/

http://blog.smalldo.gs/2013/12/create-simple-countdown/

<强>更新 纠正了你的js。

var mins = 1;
var secs = mins * 60;

function Decrement() {
    minutes = document.getElementById("minutes");
    seconds = document.getElementById("seconds");
    if (seconds < 59) {
        seconds.value = secs;
    } else {
        minutes.value = getminutes();
        seconds.value = getseconds();
    }
    secs--;

    if (secs <= 0 && mins <= 0) {
        alert(11);
        return;
    }
    setTimeout(function () {
        Decrement()
    }, 1000);
}

function getminutes() {
    mins = Math.floor(secs / 60);
    return mins;
}

function getseconds() {
    return secs - Math.round(mins * 60);
}

function countdown() {
    setTimeout(function () {
        Decrement()
    }, 1000);
}

countdown();

FIDDLE

干杯!!

答案 2 :(得分:0)

只需使用setInterval方法并将其设置为1000.(1秒)

每秒增加一个全局值。

var timePassed =0;
...
timePassed++;

如果你达到1800秒,那就是:)

这不是火箭科学,所以你可以自己动手:)

PS:如果您需要刷新页面或转到下一页,请在localStorage或cookie中存储时间。