倒计时是网站最常见的应用,特别对于电子商城类网站,我们会经常可以看到网站首页挂着很多倒计时促销的商品。那么此类倒计时是如何实现的呢?一般来说,要了解倒计时首先要明白三个概念,第一是倒计某个数,第二个则是javascript日期对象,第三是定时器setInterval ,也是倒计时最重要的一部分。

倒计某个数:

<span id="number">10</span>

<script>
var d=document,
oSpan=d.getElementById("number")
i=10;
timer=setInterval(cut,1000); //设置定时器,每一秒递减

function cut(){
if(i==0){
clearInterval(timer);
}
else{
i–;
}
oSpan.innerHTML=i;
}
</script>

倒计某个时间:

<div id="time">
<input type="hidden" value="23"/> <!–设置结束时间–>
<input type="hidden" value="00"/>
<input type="hidden" value="00"/>
<span></span><span></span><span></span>
</div>

<script>
function time(){
var d=document,
oTime=d.getElementById("time"),
aSpan=oTime.getElementsByTagName("span"),
aInput=oTime.getElementsByTagName("input"),
oDate=new Date(),
nH=oDate.getHours(),
nM=oDate.getMinutes(),
nS=oDate.getSeconds(),
eH=aInput[0].value,
eM=aInput[1].value,
eS=aInput[2].value;

var bTime=nH*3600+nM*60+nS,
eTime=parseInt(eH*3600)+parseInt(eM*60)+parseInt(eS),
Remain=eTime-bTime; // 算出时间差值

if(Remain==0){
clearInterval(timer);
}

var rH=Remain/3600; // 求得小时数
Remain%=3600; // 取模

var rM=Remain/60;
Remain%=60;

var rS=Remain;

aSpan[0].innerHTML=fillZero(parseInt(rH),2);
aSpan[1].innerHTML=fillZero(parseInt(rM),2);
aSpan[2].innerHTML=fillZero(parseInt(rS),2);
}

timer=setInterval(time,1000); //设置定时器,每一秒更新

function fillZero(str,n){ // 不够两位,补零函数
var str=str+"";
while(str.length<n){
str="0"+str;
}
return str;
}

time();

</script>

至此,倒计时开始了……