nepster-web
@nepster-web

Как сбросить таймер при повторном вызове функции?

Есть функция таймера, который рисует красивенькую полосочку:

/**
     * Таймер хода
     * @var string sectionPlayer - ID секции игрока
     * @var int s - счетчик таймера 
     */
    function runStrokeTimer(sectionPlayer, s) {
        
        if(sectionPlayer != '#topPlayer' || sectionPlayer != '#leftPlayer' || sectionPlayer != '#rightPlayer') {
            sectionPlayer = '#mainPlayer';
        }
        
        s = typeof s !== 'undefined' ? s : 30;     
        
        // Показать таймер 
        jQuery(sectionPlayer).find('.userBox .timer').css({'visibility':'visible'}); 
        
        var sectionTimer  = jQuery(sectionPlayer).find('.userBox .timer').children('.playerStrokeTime');        
        var timerInterval = setInterval(function(){timer()}, 1000);
        var stage =  100 / s ;
        var p = 0;
        
        // таймер хода 
        function timer() {
            s--;
    
            if(s === 0) {
                clearInterval(timerInterval);
            }
            p += stage;
            
            strokeStringTimer(Math.round(p));
        }  
    
        // изменение временной линии хода 
        function strokeStringTimer(p) {
            sectionTimer.css({'width': p+'%'});
        }
    }


Подскажите пожалуйста как решить ситуацию, когда нам нужно остановить таймер на конкретной секунде или запустить по новой ?
  • Вопрос задан
  • 3759 просмотров
Решения вопроса 1
Вам нужна фукция clearInterval
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы