2015-02-06 54 views
1

進出口套牢jquery countdown佈局,我要顯示這樣的事情:定製的jQuery倒計時佈局

1天,小時:分鐘再予:秒

我可以使用layout:選擇這樣

它chieve
layout: '{dn} {dl} {hnn}{sep}{mnn}{sep}{snn}' 

,但現在我有一個問題,當倒計時不到24小時它仍然顯示了天這樣

0天,小時S:分鐘再予:秒

我需要的是,當倒計時不到24小時不顯示天

我知道,可以用一個有條件的可以做,但我不知道怎麼檢查它的不到24小時。

感謝您的幫助

回答

1

Supose你有你的頁面數倒計時,每個倒計時的數據屬性data-countdown-until這樣你就可以像定製倒計時:在這種情況下,它會

$('div[data-countdown-until]').each (index, element) -> 
     $element = $(element) 
     date = new Date($element.data('countdown-until')) 
     $element.countdown(until: date, description: '', onTick: highlightLast5, layout: '{dn} {dl} {hnn}{sep}{mnn}{sep}{snn}') 

顯示N days hh:mm:ss 上述代碼適用於您在頁面中具有的任意數量的計時器。

1

你需要做的就是添加onTick: changeLayout到你的選擇,當你初始化倒計時。然後將這個changeLayout()函數添加到你的JS。像這樣:

var changed = false; 
$(selector).countdown({layout: '{dn} {dl} {hnn}{sep}{mnn}{sep}{snn}', onTick: changeLayout, until: +10} 

function changeLayout(periods) 
{ 
    if(!changed && $.countdown.periodsToSeconds(periods) <= 86400) //24hr = 24*60*60s 
    { 
     $(selector).countdown('option', {layout: '{hnn}{sep}{mnn}{sep}{snn}'}); 
     changed = true; 
    } 
} 
+0

謝謝!!所以期間就像秒對嗎? – SsouLlesS 2015-02-06 23:59:37

+0

'periods'是當前倒計時的數組(int [7] - 基於格式設置):[0]爲年,[1]爲月,[2]爲星期,[3]爲天,[4 ]是小時,[5]是分鐘,[6]是秒。 – imtheman 2015-02-07 00:05:13

+0

你的解決方案工作不好,我有5個倒計時在frontpage運行它只能用1倒計時,其他不顯示,鉻顯示我這個錯誤:未捕獲RangeError:超過最大調用堆棧大小 – SsouLlesS 2015-02-07 00:38:26