2015-02-24 2 views
1

Все, что мне нужно сделать:Как я могу запустить 90:00 «мин» за 30 секунд?

У меня есть футбольный матч (все написано в чистом js), которое составляет 90:00 мин.

Мне нужно, чтобы показать пользователям 90 (90:00) мин, и это должно быть отсчитывается с анимацией до 00:00 в 30 раз секунд ...

Что такое лучший способ приблизиться к этому? Должен ли я использовать некоторую анимационную библиотеку?

+0

использование 'setInterval' /' комплектTimeout'. Кроме того, почему 90 минут должны закончиться через 30 секунд? Почему так спешите? – Justinas

+0

Его игра за 30 секунд, но потому что это футбол, 90:00 - это таймер, который показан, и он должен добраться до 00:00 через 30 секунд. – totothegreat

+0

. Я думаю, что вы ищете что-то вроде этого http://stackoverflow.com/a/20618517/4323504 –

ответ

2

Вы можете изменить существующий отсчет времени, как this one, использовать меньший промежуток времени для обратного отсчета обратного вызова.

В вашем случае вам нужно будет вызвать функцию, которая обрабатывает обратный отсчет 180 раз в секунду (90 минут = 5400 секунд -> 30/5400 = 0,0055 -> 5,5 мс), поэтому вам нужно будет установить интервал обратного вызова до 5,5 мс. Это звучит как слишком много вызовов, поэтому вы можете каким-то образом его оптимизировать, например, вы можете рассчитывать на 10 секунд на каждом шаге, и в этом случае у вас будет только 18 вызовов функций/сек, что будет более приемлемым.

1

Простой код отсчитывать 3min каждый второй, который останавливается на 0.

var minutesLeft = 90, 
interval; 

interval = setInterval(function() { 
     minutesLeft-=3; 
     if(minutesLeft === 0) { 
      clearInterval(interval); 
     } 
    , 1000} 
+0

Если вы хотите отображать каждую минуту смены, вы можете использовать этот код, вычитая 1 до минутыLeft каждые 333 мс вместо 3 за 1 секунду. –

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