отключение таймера(Интервала) при переходе на другую вкладку
Делаю слайдер, вот такая проблемма, если я сверну окно или уйду на другую вкладку, посижу там немного, и вернусь, слайдер будет матать что дурной.
Цель - очистить интервал. Вот что сделал, работает. Но почему иногда не пашет. (При каких условиях интервал не останавливается) $(window).blur(function() { clearInterval(sliderTimer); }); $(window).focus(function() { sliderTimer=setInterval(nextSlide,intervals); }); |
xTODx,
При первичной загрузке страницы включаем сразу(ставим флаг загрузки), далее следим за потерей - восстановлением фокуса window.onblur = отключаем window.onfocus = включаем ======================= 3. Подстраховать, пусть сам setInterval , внутри которого функция тестирует флаг blur $(document).ready(function(){blur =false;}); $(window).blur(function() { blur =true; clearInterval(sliderTimer);}); $(window).focus(function() { blur =false; sliderTimer=setInterval(function(){ if(blur){clearInterval(sliderTimer); return} ;nextSlide();}, intervals); }); |
У меня в див подгружается пхп на котором находятся таймеры обратного отсчёта. Я задумал сделать в этот же див подгрузку другого пхп, если окно неактивное. Проблема в том, что при возврате в активное состояние окна, рабочий пхп загружается уже без таймеров... Станица рабочая и пхп исполняется, и кнопки, если время истекло, то появятся. И я уже не первый раз замечаю, что отдельный джаваскрипт (в тегах script) внутри $(window).focus(function() не работает... Что я делаю не так?
|
Часовой пояс GMT +3, время: 01:42. |