自己封装的一个简单的倒计时功能

因为平常工作中很常用到该功能,所以就利用这次国庆假期,重新梳理与对原有代码进行改善,再集成一个常用的功能,最终封装出这个“简单倒计时”功能。

该倒计时方法具有以下该功能:

  1. 根据指定日期与当前的电脑时间进行匹配

  2. 通过指定一个数组参数,来设置在每一天内不同的时间段进行倒计时。

* 该方法还未通过实际工作的检测,稳定性未知(如果实际工作通过,会删除这段话

 1 function countDown(date,target,filter){
 2 
 3     var setTime = new Date(date).getTime(),
 4         timer = null;
 5 
 6     function core(){
 7         var nowTime = new Date().getTime(),
 8             leftTime = 0,
 9             d = 0,h = 0,m = 0,s = 0;
10 
11         ////////////////////////////
12         //conditation @ doublue time
13         if(filter.length){
14             setTime = new Date();
15             for(var i=0,l=filter.length;i<l;i++){
16                 setTime.setHours(filter[i]);
17                 setTime.setMinutes(0);
18                 setTime.setSeconds(0);
19                 if(nowTime < setTime.getTime()){
20                     break;
21                 }else if(i == filter.length-1){
22                     setTime.setDate(setTime.getDate()+1);
23                     setTime.setHours(filter[0]);
24                 }
25                 
26             }
27         }
28         ////////////////////////////
29 
30         leftTime = Math.ceil((setTime - nowTime)/1000);
31         if(nowTime <= setTime){
32             d = ~~(leftTime/86400);
33             h = ~~(leftTime%86400/3600);
34             m = ~~(leftTime%86400%3600/60);
35             s = ~~(leftTime%86400%3600%60);
36             timer = setTimeout(core,1e3);
37         }else{
38             clearTimeout(timer);
39             timer = null;
40         }
41 
42         //here set out format
43         target.innerHTML = 'd:'+d+' h:'+h+' m:'+m+' s:'+s;
44         
45     }
46     core();
47 }

调用方式:

1 // 普通调用
2 countDown('2016/10/02/23:43',oDiv);
3 
4 // 指定时间循环倒计时
5 countDown('2016/10/02/23:43',oDiv,[9,11,18]);

 

posted @ 2016-10-03 22:10  卷柏的花期  阅读(678)  评论(0编辑  收藏  举报