Выполнение функции фокусировки в Chrome и Safari - PullRequest
0 голосов
/ 20 октября 2011

Я пытаюсь создать полноразмерный фоновый слайдер, который перестает играть, когда вкладка / окно неактивно, и продолжается, когда он находится в фокусе.

Проблема в том, что и Chrome, и Safari ничего не делают при загрузке / обновлении страницы - нужно щелкнуть, а затем в окне, чтобы запустить анимацию.

Есть ли способ избежать этого?

Это мой код:

$(window).load( function(){ 
    var autopager;

    function startAutopager() {
        autopager = window.setInterval("slideSwitch()", 5000);
    }

    function stopAutopager() {
        window.clearInterval(autopager);
    }

    window.addEventListener('focus', startAutopager);   
    window.addEventListener('blur', stopAutopager);

    slideSwitch();
    $("#sliderContent img").fullBg();
});

Запускается анимация для обоих браузеров, но когда я снова нажимаю за пределами окна, она не останавливается:

if(true == $.browser.safari || true == $.browser.chrome) {
    startAutopager();
}

Надеюсь, кто-то может помочь.

* Приветствия 1014 *!

1 Ответ

0 голосов
/ 20 октября 2011

Попробуйте и дайте мне знать в комментарии, как это происходит.:)

$(function(){
  $("#sliderContent img").fullBg();

  var autopager;
  function startAutopager() {
    if (autopager) window.clearInterval(autopager);
    autopager = window.setInterval("slideSwitch()", 5000);
  }
  function stopAutopager() {
    window.clearInterval(autopager);
  }
  window.focus(startAutopager);   
  window.blur(stopAutopager);
  startAutopager()
});
...