Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Сделать одноразовый счетчик, если ушел с вкладки и вернулся (без перезагрузки страниц (https://javascript.ru/forum/misc/58373-sdelat-odnorazovyjj-schetchik-esli-ushel-s-vkladki-i-vernulsya-bez-perezagruzki-stranic.html)

Arx777 18.09.2015 11:56

Сделать одноразовый счетчик, если ушел с вкладки и вернулся (без перезагрузки страниц
 
Как сделать, чтоб если открыл страницу и один раз навел на html, то пошел счетчик, который через минуту обнуляется. Если мышка не наведена на html, то счетчик должен останавливаться, при наведение он должен иметь то значение, которое имел при потери фокуса на html.
Собственно, я только не могу понять, как сделать, чтоб если условие if (time === 60) выполнилось, то перейдя на другую вкладку и вернувшись назад (не обновляя страницу (сейчас отчет начинается заново)) не пошел отсчет заново (вариант присвоить time = 100500 не катит (не красиво)).
<script>             
        var time = 0;    
        $('html').mouseenter(function(){           
            var b = setInterval(function(){
                ++time;
                console.log(time); 
                if (time === 60){
                    //yaCounter12347095.reachGoal("corp_landing_1min"); return true;
                    //ga('send', 'event', 'corp_landing_1min', 'landing_1min');
                    clearInterval(b);
                    time = 0;
                }
            }, 1000);
        });        
</script>

Arx777 18.09.2015 12:46

Придумал такое решение, если есть лучше, то буду благодарен:yes:

<script>             
        var time = 61;
        var b = null;        
        $('html').mouseenter(function(){           
            b = setInterval(function(){
                if (time <= 0) {clearInterval(b);}
                --time;
                console.log(time);                
                if (time === 1){
                    //yaCounter12347095.reachGoal("corp_landing_1min"); return true;
                    //ga('send', 'event', 'corp_landing_1min', 'landing_1min');
                    time = 0;
                }
            }, 1000);            
        }); 
        $('html').mouseleave(function(){clearInterval(b)});      
</script>


Часовой пояс GMT +3, время: 17:11.