帮忙改下JS代码,如何在一个页面显示多个倒计时。。。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了帮忙改下JS代码,如何在一个页面显示多个倒计时。。。相关的知识,希望对你有一定的参考价值。

代码说明
packetid 是提取数据库中的项目ID 具体该怎么改?
一个页面有多个倒计时,怎么样才能全部显示?现在只显示一个。。。。

代码如下
<h1><strong id="RemainH$packetdata['packetid']">XX</strong>:<strong id="RemainM$packetdata['packetid']">XX</strong>:<strong id="RemainS$packetdata['packetid']">XX</strong>:<strong id="xxx$packetdata['packetid']">XX</strong></h1>

<script language="javascript">
<!-- //
var runtimes = 0;
var lefttime = "$today"-"$packetdata['starttimeform']";
function GetRTime()
var nMS = lefttime*1000-runtimes*10;
var nH=Math.floor(nMS/(1000*60*60))%24;
var nM=Math.floor(nMS/(1000*60)) % 60;
var nS=Math.floor(nMS/1000) % 60;
var nms=Math.floor(nMS);
var nw= "已结束";
document.getElementById("RemainH$packetdata['packetid']").innerhtml=nH;
document.getElementById("RemainM$packetdata['packetid']").innerHTML=nM;
document.getElementById("RemainS$packetdata['packetid']").innerHTML=nS;

var c=new Date();
var q=c.getMilliseconds();
if(q<10)//因为毫秒为一位数时只占一个字符位置,会让毫秒二字变动位置

q="00"+c.getMilliseconds();

if(q>=10 && q<100)//因为毫秒为两位数时只占两个字符位置,会让毫秒二字变动位置

q="0"+c.getMilliseconds();

document.getElementById("xxx$packetdata['packetid']").innerHTML=q;
if(nMS<0)

document.getElementById("RemainH$packetdata['packetid']").innerHTML="";
document.getElementById("RemainM$packetdata['packetid']").innerHTML="已结束";
document.getElementById("RemainS$packetdata['packetid']").innerHTML="";
document.getElementById("xxx$packetdata['packetid']").innerHTML="";

runtimes++;
setTimeout("GetRTime()",10);

window.onload=GetRTime;
// -->
</script>

一个页面显示多个倒计时,每个对应的项目需要显示倒计时的控件添加一个计时器,倒计时生成一个实例:var time = new Timer();如下代码:

/**
*startime 应该是毫秒数
*
*/

var Alarm = function (startime, endtime, countFunc, endFunc) 
        this.time = Math.floor((endtime - startime) / 1000); //时间
        this.countFunc = countFunc; //计时函数
        this.endFunc = endFunc; //结束函数
        this.flag = \'t\' + Date.parse(new Date()); //
    ;
Alarm.prototype.start = function () 
    var self = this;

    self.flag = setInterval(function () 
        if (self.time < 0) 
            clearInterval(self.flag);
            self.endFunc();
            console.log(\'计时结束\');
         else 

            var minute, hour, day, second;
            day = Math.floor(self.time / 60 / 60 / 24) < 10 ? \'0\' + Math.floor(self.time / 60 / 60 / 24) : Math.floor(self.time / 60 / 60 / 24);
            hour = Math.floor(self.time / 60 / 60 % 24) < 10 ? \'0\' + Math.floor(self.time / 60 / 60 % 24) : Math.floor(self.time / 60 / 60 % 24);
            minute = Math.floor(self.time / 60 % 60) < 10 ? \'0\' + Math.floor(self.time / 60 % 60) : Math.floor(self.time / 60 % 60);
            second = Math.floor(self.time % 60) < 10 ? \'0\' + Math.floor(self.time % 60) : Math.floor(self.time % 60);
            //倒计时执行函数
            self.countFunc(second, minute, hour, day);
            self.time--;

        
    , 1000);
参考技术A <h1><strong id="ReTime">示例一</strong></h1>
<h1><strong id="ReTime2">示例二</strong></h1>
<script language="JavaScript">
<!-- //
function ReTime()
this.ID = document.getElementById(arguments[0]);
if(!this.ID)

alert("您要设置的 " + arguments[0] + " 初始化错误\r\n请检查标签ID设置是否正确!");
this.ID = -1;
return;

this.StartTime = new Date().valueOf();
this.Finish = "00:00:00:00";
this.TimerID;
if(typeof arguments[1] == "number" || typeof arguments[1] == "string")this.StartTime = arguments[1];
if(arguments.length >= 1)this.Start();

ReTime.prototype.Start = function()

var Obj = this;
var RunTime=0;
Obj.Begin = function()RunTime++;
var nMS = Obj.StartTime*1000-RunTime*10;
var nH=Math.floor(nMS/(1000*60*60))%24;
var nM=Math.floor(nMS/(1000*60)) % 60;
var nS=Math.floor(nMS/1000) % 60;
var nms=Math.floor(nMS);
var c=new Date();
var nQ=c.getMilliseconds();
if(nQ<10)//因为毫秒为一位数时只占一个字符位置,会让毫秒二字变动位置

nQ="00"+c.getMilliseconds();

if(nQ>=10 && nQ<100)//因为毫秒为两位数时只占两个字符位置,会让毫秒二字变动位置

nQ="0"+c.getMilliseconds();

Obj.Finish = nH+":"+nM+":"+nS+":"+nQ;

if(nms<0)Obj.Finish = "已结束";window.clearInterval(Obj.TimerID);
Obj.ID.innerHTML = Obj.Finish;

Obj.TimerID = window.setInterval(Obj.Begin,10);

new ReTime("ReTime","$today-$packetdata['starttimeform']");
new ReTime("ReTime2");
//代码使用说明
/*倒计时过程 ,调用方法---- new ReTime(ID,TODAY);
ID----页面中的HTML元素标签ID。
TODAY---你的那个什么变量。

*/
// -->
</script>本回答被提问者采纳

如何在asp页面上做一个倒计时?

如何在asp页面上做一个倒计时?要求显示一个10秒倒计时 如果10秒之内用户没有点击其他链接 自动跳转 这个10秒倒计时要怎么做啊 难道要1秒刷新一次页面?

<script language="javascript">
setTimeout("window.open('http://www.baidu.com','_self')",10000);
</script>

把这段代码放到你的网页的</head></head>之间就可以了.它表示10秒钟后自动跳转到baidu
参考技术A 用js呀
百度一下JS的setTimeout
参考技术B 你可以选择js或者使用ajax技术来进行

以上是关于帮忙改下JS代码,如何在一个页面显示多个倒计时。。。的主要内容,如果未能解决你的问题,请参考以下文章

js,多个计时器在完成后一个接一个显示

帮忙小小的修改一下JS代码,关于倒计时的。

如何在asp页面上做一个倒计时?

JS怎么修改时间显示的格式。感谢

php多个网页共用一个计时器代码

倒计时代码 网址跳转