Плагин обратного отсчета jQuery - показывать только ненулевые периоды

Я кодирую обратный отсчет с плагином обратного отсчета jQuery.

Я только хочу, чтобы он показывал активные («ненулевые») периоды, например. вместо

оставшееся время: 0 дней, 0 часов, 13 минут, 20 секунд

это должно только показывать

13 минут 20 секунд.

Мой код:

$('#countdown').countdown({
    expiryUrl:'index.php?show=main', 
    expiryText: 'EXPIRED', 
    until: timeleft, 
    layout:'{d<}{dn} {dl} and {d>}{h<}{hn} {hl}, {h>}{m<}{mnn} {ml}, {m>}{s<}{snn}{sl}{s>}'
});

Но проблема в том, что с помощью этого кода он скрывает период «Дни», но НЕ «Часы/минуты».

Итак, в настоящее время я получаю это:

оставшееся время: 0 часов, 10 минут, 27 секунд

Что мне нужно сделать, чтобы скрыть ВСЕ нулевые периоды?

Спасибо!


person user1377886    schedule 06.05.2012    source источник


Ответы (2)


Привет, пожалуйста, посмотрите здесь добавление 2 jsfiddle, чтобы показать вам разницу: http://jsfiddle.net/8JJ9B/6/ (будут отображаться только секунды обратите внимание, это происходит, когда вы устанавливаете **format** параметр обратного отсчета в нижнем регистре) и http://jsfiddle.net/8JJ9B/4/ (ноль также появится, потому что у меня параметр формата установлен как заглавные символы) update http://jsfiddle.net/cUW4M/

Чтобы избежать появления любого ненулевого значения, плагин обратного отсчета имеет ссылку с именем format: с options as lower case character

Далее http://keith-wood.name/countdownRef.html#format

[Quote]Формат option == ...Используйте символы верхнего регистра для обязательных периодов или соответствующие символы нижнего регистра для необязательных периодов, т. е. отображать только ненулевые значения. Как только отображается один необязательный период, все последующие также отображаются... [Без кавычек]

код

$('#highlightCountdown').countdown({until: 0, format: 'hmS',onTick: highlightLast5});
person Tats_innit    schedule 06.05.2012
comment
Спасибо за ваш ответ Tats_innit, да, я мог бы сделать это с форматом, но я хочу использовать макет. Как я уже писал, в моем примере исчезает ноль Дней, но не ноль Часов/Минут. Может быть, это ошибка? В документации keith-wood.name/countdownRef.html#layout говорится: Если вам нужно чтобы исключить целые разделы, когда значение периода равно нулю и вы указали период как необязательный, окружите эти разделы символами '{p‹}' и '{p›}', где p такое же, как указано выше. Хм, что имеется в виду, и вы указали период как необязательный? Как указать часы/минуты как необязательные? - person user1377886; 06.05.2012
comment
@user1377886 user1377886 привет кулеос! вы можете попробовать использовать один из jsfiddle и пролистать его, я мог бы взглянуть, брув :) ‹может быть ошибка› или может быть что-то еще; хорошего настроения, ура! - person Tats_innit; 06.05.2012
comment
ОК, посмотрите здесь: jsfiddle.net/8JJ9B/9 Отсчитывает 100 секунд (1 м 40s), он показывает не ДНИ, а ЧАСЫ, даже если они равны нулю - person user1377886; 06.05.2012
comment
Hiya @ user1377886 понял вас, брув, и, похоже, он все еще развивается, проверьте эту ссылку: keith-wood.name/countdown. html, и если вы перейдете ко второй демонстрации unorderlist и щелкнете по коду, вы заметите, что он использует format, поэтому для достижения желаемого результата я внес небольшое изменение в скрипка здесь: jsfiddle: jsfiddle.net/HjQSF/22 и Надеюсь это поможет! приятного, :) cheerios! - person Tats_innit; 06.05.2012
comment
Спасибо, это работает отлично! Так что надо совмещать и формат, и компоновку! - person user1377886; 06.05.2012

Упрощенная версия ответа @Tats_innit (вся правильная информация находится в комментариях и jsfiddles): ключевое значение имеет сочетание параметров format и layout.

$('#mytimer').countdown({
    until: timerEnd, 
    compact: true,
    format: 'dhMS',
    layout: '{d<}{dn} days {d>}{h<}{hn}{sep}{h>}{m<}{mnn}{sep}{m>}{s<}{snn}{s>}'
});

Это дает, соответственно:

4 дня 22:16:01

11:12:13

06:05

00:01

person squarecandy    schedule 30.05.2013