2011-11-17 3 views
0

JS 신생 vs Nivo 슬라이더. 문제의 원인Nivo 슬라이더 브라우저/탭/창 흐림/포커스

작업 : 사용자가 다른 탭 또는 창

문제로 전환 : NIVO 슬라이더는 백그라운드에서 계속 실행됩니다. 탭/창으로 돌아 가면 내 맞춤 애니메이션 (jquery.nivo.slider.js에 추가됨)이 제어 할 수 없게됩니다. 내 간단한 애니메이션의

예 : 실제로 솔루션을 파악하고 회원을 개선하기 위해 그것을 게시 할 예정입니다

$('#element').animate({"top": "0px"}, "slow"); 

.

감사합니다.

답변

0

다른 탭으로 이동할 때 (예 : onclick 이벤트를 통해) 슬라이더를 멈출 수 없으며 inital 탭으로 돌아갈 때 계속 실행합니까?

$('#slider').data('nivoslider').stop(); //Stop the Slider 
$('#slider').data('nivoslider').start(); //Start the Slider 
+0

I 초점/흐림 이벤트를 캡처 할 수있는 크로스 브라우저 친화적 인 방법을 찾는 것입니다 직면하고있어 큰 문제. 광범위한 테스트를 수행하지는 않았지만 필자가 찾은 해결책은 최신 브라우저에서 제대로 작동하는 것 같습니다. 당신이 제안하는 방법은 전체 Nivo 슬라이더 루프를 멈출 것입니까? 나는 그것을 줄 것이다. 당신의 도움을 주셔서 감사합니다. – DeFeNdog

+0

당신의 페이지에서 당신이하고있는 것을 정확히 모르겠지만 이것들은 Nivo 고유의 기능이므로 문제가되어서는 안됩니다. 처음에는 사이트 내에서 탭을 변경하는 것을 의미한다고 생각했기 때문에 (즉, onclick 이벤트를 말한 이유입니다.) 브라우저 탭을 의미하는 경우 이미 발견 한 것처럼 window.onblur/onfocus로 이동하십시오. – Shomz

0

다음은 저에게 도움이되는 해결책입니다. 더 나아질 수있는 방법이 있다면 알려주세요. 감사!

if (/*@[email protected]*/false) { // check for Internet Explorer 

document.onfocusin = function() { 
     vars.paused = false; 
     //Restart the timer 
     if(timer == '' && !settings.manualAdvance){ 
      timer = setInterval(function(){ nivoRun(slider, kids, settings, false); }, settings.pauseTime); 
     } 
    } 
document.onfocusout = function() { 
      vars.paused = true; 
      clearInterval(timer); 
      timer = ''; 
     } 
} else { 

window.onfocus = function(){ 
     vars.paused = false; 
     //Restart the timer 
     if(timer == '' && !settings.manualAdvance){ 
      timer = setInterval(function(){ nivoRun(slider, kids, settings, false); }, settings.pauseTime); 
     } 
    } 

window.onblur = function(){ 
     vars.paused = true; 
     clearInterval(timer); 
     timer = ''; 
    } 

}

관련 문제