帮忙改下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代码,如何在一个页面显示多个倒计时。。。的主要内容,如果未能解决你的问题,请参考以下文章