2015-02-06 52 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