多语言展示
当前在线:1392今日阅读:113今日分享:31

网页中用JavaScript实现倒计时器

本文通过使用javascript实现一个类似在线网上考试使用的倒计时器,并经过实际调试并可以正常运行,现贡献源码与经验,欢迎大家指出其中存在的问题。
工具/原料
1

浏览器(支持HTML5):用于调试、显示倒计时器

2

文本编辑器(小编使用的是Notepad++):用于编辑html文件和javascript文件

方法/步骤
1

html文件:显示倒计时器,其中内嵌的脚本用于向指定的html标签中插入时、分、秒值;

2

(1) 外部javascript文件countdown.js:实现倒计时器的主要功能。主要包括作为变量值的3个函数分别是:init()【用于初始化考试时 间】;setval()【用于给timer.html中的时、分、秒标签赋值,数值不足两位时用0补齐;setp()【用于计算每隔1000毫秒后,此时 的时、分、秒的值】。(2)countdown()函数:通过每隔1000毫秒调用step()函数实现一个动态的倒计时器。

3

(外部javascript文件countdown.js源码)countdown = function(userOptions){    var h,m,s,t;    var init = function()    {        userOptions.time = userOptions.time*60 - userOptions.lefttime;        s = userOptions.time%60;        m = parseInt(userOptions.time%3600/60);        h = parseInt(userOptions.time/3600);    }    var setval = function()    {        if(s >= 10)        userOptions.sbox.innerHTML = s;        else        userOptions.sbox.innerHTML = '0'+s.toString();        if(m >= 10)        userOptions.mbox.innerHTML = m;        else        userOptions.mbox.innerHTML = '0'+ m;        if(h >= 10)        userOptions.hbox.innerHTML = h;        else        userOptions.hbox.innerHTML = '0'+ h;    }    var step = function()    {        if(s > 0)        {            s--;        }        else        {            if(m > 0)            {                m--;                s = 60;                s--;            }            else            {                if(h > 0)                {                    h--;                    m = 60;                    m--;                    s = 60;                    s--;                }                else                {                    clearInterval(interval);                    userOptions.finish();                    return ;                }            }        }        setval();    }    init();    interval = setInterval(step, 1000);};

4

最后网页页面中实现的倒计时器,抓屏效果如下:

5

到此为止一个简单的网页版倒计时器实现了,感谢大家给予点击,欢迎大家指出存在的问题;后续小编将持续推出一些网站开发的实战经验,敬请大家给予关注。

注意事项
1

1.在timer.html文件中的lefttime变量可以删除,同时countdown.js中对应的部分要作一些修改。小编由于是在做一个网上考试系统,需要用到lefttime这个变量,倒计时器只是整个系统的一个子功能;如果单独作为一个倒计时器使用,这个变量就有些多余了。

2

2.本文指定的考试总时间是60分钟,为了简洁本文使用了硬编码。更加灵活的方式是读取用户指定的参数,以此作为考试的时间。

3

3.还要一个功能,就是当时间达到指定的总时间60分钟后,倒计时器会自动提交并执行标签中action属性指定的动作,由于这个功能不作为本文的主题,下次作为另一主题再贡献给大家。

推荐信息