2012-08-28 32 views
1

有沒有一種方法可以創建一個使用javascript的倒數計時器,一旦它達到0時會自動調整到不同的倒數計時器? (例如:從當前時間到2012年新年的倒計時,一旦達到0,它將變爲3月份的生日倒計時)(這可以用作事件日程的倒計時。時間表和倒計時時間表,一旦它完成倒計時第一部分的下一部分)Self Adjustmenting Javascript Countdown

+4

是的,有辦法做到這一點。 – timidboy

+0

Onchie說得對。 – Julian

回答

0
var timeForNextFunction = false; 

function firstFunction(){ 
    //set timeForNextFunction = true when its time for the next function. 
}; 
function nextFunction(){}; 

var tick = 100; //milliseconds 
document.setInterval(function(){ 
     if (timeForNextFunction) 
      nextFunction(); 
     else 
      firstFucntion(); 
}, tick); 
0

你可以有Date陣列,例如:

function newDate(seconds){ 
    var d=new Date(); 
    d.setTime(new Date().getTime()+1000*seconds); 
    return d; 
} 
var events=[newDate(10),newDate(40)]; 

然後

var currentEvent=0, 
    cntdwn=document.getElementById('seconds'); 
    refreshEvent(); 
var timer=setInterval(display,1000); 

function display(){ 
    var seconds=Math.ceil((events[currentEvent].getTime()-new Date().getTime())/1000); 
    if(seconds>=0){ 
     cntdwn.innerHTML=seconds; 
    }else{ 
     if(currentEvent<events.length-1){ 
      currentEvent++; 
      refreshEvent(); 
     }else{ 
      clearTimeout(timer); 
      // Finished 
     } 
    } 
} 
function refreshEvent(){ 
    document.getElementById('currentDate').innerHTML=events[currentEvent]; 
} 

見這裏:http://jsfiddle.net/epUG4/

0

當然在衆人的倒計時,你可以嘗試jCounter,並設置其後備推出該插件的另一個實例與另一個日期。

這你會怎麼做,在jCounter:

$('.counterClass').jCounter({ 
    date: '31 december 2012 23:59:59', 
    format: 'dd:hh:mm:ss', // display days, hours, minutes and seconds, you can choose here what to display 
    fallback: function() { $('.counterClass').jCounter({ // fallback for the next countdown 
    date: '31 march 2013 00:00:00', 
    format: 'dd:hh:mm:ss', // format 
    fallback : function() { alert("Happy Birthday!") } // second fallback 
    }); } 
}); 

注意到,jCounter依賴於服務器端的時區,默認爲「歐洲/倫敦」,您可以通過添加改變它(中其他設置),時區:'歐洲/奧斯陸',或任何你喜歡的。