2011-11-17 53 views
0

JS新手vs Nivo Slider。引起問題Nivo Slider瀏覽器/標籤頁/窗口模糊/焦點

動作:用戶切換到一個不同的標籤頁或窗口

問題: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

我面對的是找到一個跨瀏覽器友好的方式來捕捉焦點/模糊事件的主要問題。我發現的解決方案似乎可以與較新的瀏覽器一起工作,儘管我還沒有做過廣泛的測試。您建議的方法會停止整個Nivo Slider循環嗎?我會給它一個鏡頭。謝謝你的幫助。 – 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 = ''; 
    } 

}

相關問題