当前位置:编程学习 > JS >>

js 倒计时代码总结分享

通过使用 JavaScript,我们有能力作到在一个设定的时间间隔之后来执行代码,而不是在函数被调用后立即执行。我们称之为计时事件。

在 JavaScritp 中使用计时事件是很容易的,两个关键方法是:

setTimeout()

未来的某时执行代码

clearTimeout()
取消

setTimeout()

实例

 代码如下 复制代码

function countdown(v,oid){
 if(v==true){//先用ajax取得倒计时的基数(只有第一次运行这个函数的时候才会做)
  $.get('json/get_countdown.php',function(data){
   dtime = data;//得到秒
   id = 'countdown';
   t=setTimeout('countdown(false,'+oid+')',1000);
  });
 }else if(v==false){
         clearTimeout(t);//这句很重要,不加这句的话在多次刷新页面的时候,倒计时会走的更快
  h=checkTime(parseInt(dtime/3600));//计算小时
  m=checkTime(parseInt(dtime/60%60));//计算分钟
  s=checkTime(parseInt(dtime%60));//计算秒
  $('#'+id).html(h+":"+m+":"+s);//将倒计时显示在一个html标签里面
  dtime=dtime-1;
  setTimeout('countdown(false,'+oid+')',1000);

调用方法很简单 countdonw(v,id)即可。

再看一个

 代码如下 复制代码

<title> 演示实例:倒计时效果-精确到秒 </title>
<meta http-equiv="content-type" content="text/html; charset=gb2312" />
<meta name="keywords" content="" />
<meta name="description" content="" />
<script language="JavaScript">
<!-- //
var overDate = 1000 * 60 * 60 * 24 * 3;//截止时间:为当前计算机时间+3天
var NowTime = new Date();
//var EndTime= new Date(2009,01,11,0,0);
var EndTime= new Date(NowTime.getTime() + overDate);
var EndTimeMsg = EndTime.getFullYear() + "年";
EndTimeMsg = EndTimeMsg + (EndTime.getMonth()+1) + "月";
EndTimeMsg = EndTimeMsg + (EndTime.getDate()) + "日";
EndTimeMsg = EndTimeMsg + (EndTime.getHours()) + "时";
EndTimeMsg = EndTimeMsg + (EndTime.getMinutes()) + "分";
EndTimeMsg = EndTimeMsg + (EndTime.getSeconds()) + "秒";
function GetRTime(){

 NowTime = new Date();
 var nMS=EndTime.getTime() - NowTime.getTime();
 var nD=Math.floor(nMS/(1000 * 60 * 60 * 24));
 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/100) % 10;
 if(nD>= 0){
  document.getElementById("RemainD").innerHTML=nD;
  document.getElementById("RemainH").innerHTML=nH;
  document.getElementById("RemainM").innerHTML=nM;
  document.getElementById("RemainS").innerHTML=nS + "." + nMS;
 }
 else {
  document.getElementById("CountMsg").innerHTML= EndTimeMsg +"已过!";
 }
 setTimeout("GetRTime()",100);
}
window.onload=function(){
    document.getElementById("EndTimeMsg").innerHTML = EndTimeMsg;
 GetRTime();
}
// -->
</script>
</head>
<body>
<div id="CountMsg">
今天距离
 <strong id="EndTimeMsg">XX</strong>
还有
 <strong id="RemainD">XX</strong>天
 <strong id="RemainH">XX</strong>时
 <strong id="RemainM">XX</strong>分
 <strong id="RemainS">XX</strong>秒
</div>

补充:网页制作,js教程 
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,