Анимация jQuery с проблемой времени

#jquery

#jquery

Вопрос:

Как мне это получить http://cnanney.com/journal/demo/apple-counter/countdown.php каждый день вести обратный отсчет до 10 утра, а затем перезапускать. Это для ежедневного дедлайна.

У меня уже есть скрипт, который делает это, но в гораздо более простой форме, однако я хочу, чтобы эффект перехода был достигнут здесь (нашел эту ссылку на этом веб-сайте) и просто нужно как-то отрегулировать время?

Комментарии:

1. Насколько я понимаю, у вас уже есть рабочий скрипт, и вы хотите оформить его как демонстрационную версию Apple-counter. Что касается времени, вы хотите вести обратный отсчет до следующих 10 утра (оно сбрасывается до 24 часов в 10 утра). Это верно?

Ответ №1:

кажется, что используемая техника анимации на самом деле является простым фоновым переходом этого фона :

http://cnanney-files.s3.amazonaws.com/journal/apple-counter/filmstrip.png

как объяснено здесь :

http://cnanney.com/journal/code/apple-style-counter/

Он использует setTimer() и меняет позицию 5 раз в секунду для достижения результата анимации. Для вашей цели попробуйте сделать что-то подобное (изменив фактически используемый код)

 ...
// SET TARGET DATE HERE
var currentTime = new Date();

currentTime.setDate(currentTime.getDate()   1);

var month = currentTime.getMonth();
var day = currentTime.getDate();
var year = currentTime.getFullYear();
var target = new Date(year, month, day, 10, 00, 00);
...
  

и затем проверка правильности вычисления разницы между целевым днем и now ()

Надеюсь, это поможет

Ответ №2:

Вам нужно изменить способ вычисления цели, а также повторно инициализировать все, когда вы достигнете этой цели, чтобы заново запустить обратный отсчет.

Метод, который инициализирует все переменные этого скрипта

 function SetNextTarget(){
    now = new Date();
    // check if we are past todays time
    if (now.getHours() >= 10 amp;amp; now.getMinutes() >= 00)
    {
        // set tomorrow time if we are passed todays time
        end = new Date(now.getFullYear(), now.getMonth(), now.getDate() 1, 10, 0,0);
    }
    else
    {
        //set today time if we have not reached it yet
        end = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 10, 0,0);
    }
    theDiff = end-now;
    theDiffString = getTimeString(theDiff);
}
  

и вам нужно вызвать это прямо перед initialDigitCheck() методом, а также вызвать его, как только вы достигнете 0 в обратном отсчете (внутри doCount() метода)

полная демонстрация на http://jsfiddle.net/gaby/zEAnJ /