Глюк в скрипте таймера

vave

Полезный
Регистрация
22 Июн 2007
Сообщения
467
Реакции
16
HTML:
<script>

      
            $(function(){
                countDown = function(){
                    var currentDate = Math.round(new Date() / 1000);

                    var clock = $('.clock').FlipClock({
                        language: 'ru',
                        countdown: true,
                        callbacks: {
                            init: function() {
                                //store end date If it's not yet in cookies
                                if(!$.cookie('endDate_1')){
                                    // end date = current date + 1 minutes
                                    var endDate_1 = Date.now() + 197*57*1000;


                                    // store end date in cookies
                                    $.cookie('endDate_1', Math.round(endDate_1 / 1000));
                                }
                            },
                            interval: function () {
                                var currentDate = Math.round(new Date() / 1000);
                                var time = clock.getTime().time;
                            },
                            stop: function() {
                           $.removeCookie('endDate_1');
                          countDown(); //launch countdown function
                            },
                        }
                    });

                    // counter will be in first 1 min if the user refresh the page the counter will be the difference between current and end Date, so like this counter can continue the countdown normally in case of refresh.
                    var counter = $.cookie('endDate_1')-currentDate;

                    clock.setTime(counter);
                    clock.setCountdown(true);

                       clock.start();
                   }

                //reset button
                   $('#reset').click(function(){
                    $.removeCookie('endDate_1'); //removing end date from cookies
                    countDown(); //launch countdown function
                });
              
                //Lanching countDown function on ready
                countDown();
               });
        </script>

Когда время на таймере заканчивается, происходит такая вот фигня, но иногда начинается заново. Как сделать так, что бы этого глюка не возникало?
7lhQSelFP70.jpg
 
Когда время на таймере заканчивается, происходит такая вот фигня, но иногда начинается заново. Как сделать так, что бы этого глюка не возникало?
Вероятнее всего в counter попадает отрицательное число. Вот здесь:
Код:
var counter = $.cookie('endDate_1')-currentDate;
Можно попробовать поступить так:
Код:
var counter = $.cookie('endDate_1')-currentDate;
counter = counter < 0 ? 0 : counter;
А чтобы заново не начинался верятно нужно в каллбэке ивента stop выпилить:
Код:
countDown(); //launch countdown function
 
  • Нравится
Реакции: vave
Вероятнее всего в counter попадает отрицательное число. Вот здесь:
Код:
var counter = $.cookie('endDate_1')-currentDate;
Можно попробовать поступить так:
Код:
var counter = $.cookie('endDate_1')-currentDate;
counter = counter < 0 ? 0 : counter;
А чтобы заново не начинался верятно нужно в каллбэке ивента stop выпилить:
Код:
countDown(); //launch countdown function
Пусть начинается заново.
Изменения в первую строку внес, вроде счетчик закрутился, посмотрю что будет по его окончанию.
 
Назад
Сверху