2015-02-06 1 views
1

Im застрял с jquery countdown макет, я хочу показать что-то вроде этого:подгоняет JQuery отсчет раскладка

1 день, часы: minuts: сек

Я мог chieve его с помощью layout: опции, как этот

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

, но теперь у меня проблема, когда отсчет времени меньше, чем 24 часа он все еще показывает дни, как этот

0 дней, час S: minuts: сек

Мне нужно, что, когда отсчет времени меньше, чем 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}') 

в этом случае будет show 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

+0

'period' - это массив текущих периодов обратного отсчета (int [7] - на основе настройки формата): [0] - годы, [1] - месяцы, [2] - недели, [3] - дни, [4] ] - часы, [5] - минуты, а [6] - секунды. – imtheman

+0

ваше решение работает не очень хорошо, мне нравится 5 обратных отсчетов, запущенных на первой странице, он работает только с 1 обратным отсчетом, остальные не отображаются, хром показывает мне эту ошибку: Не удалось RangeError: максимальный размер стека вызовов превышен – SsouLlesS

 Смежные вопросы

  • Нет связанных вопросов^_^