自定义jquery倒计时布局

时间:2015-02-06 23:06:40

标签: jquery countdown countdowntimer

我坚持使用jquery countdown布局,我希望显示如下内容:

1天,小时:minuts:sec

我可以使用像{/ p>这样的layout:选项来解决它

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

但现在我遇到了一个问题,当倒计时少于24小时时,它仍然会显示这样的日子

0天,小时:minuts:sec

我需要在倒计时少于24小时时不显示日期

我知道可以通过条件完成,但我不知道如何检查它不到24小时。

感谢您的帮助

2 个答案:

答案 0 :(得分: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;
    }
}

答案 1 :(得分:1)

假设您在页面中有多个倒计时,每个倒计时都有数据属性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 上面的代码适用于页面中任何数量的计时器。