A-A+
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 EndTimeEndTimeMsg = EndTime.getFullYear() + "年";
- EndTimeMsgEndTimeMsg = EndTimeMsg + (EndTime.getMonth()+1) + "月";
- EndTimeMsgEndTimeMsg = EndTimeMsg + (EndTime.getDate()) + "日";
- EndTimeMsgEndTimeMsg = EndTimeMsg + (EndTime.getHours()) + "时";
- EndTimeMsgEndTimeMsg = EndTimeMsg + (EndTime.getMinutes()) + "分";
- EndTimeMsgEndTimeMsg = 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>