2012-01-03 120 views
3

我在我的網站上有幾個HTML5視頻(在一個滑塊內),它們每x秒自動循環一次(或者當用戶點擊「下一張幻燈片」時)。jQuery如何不斷檢查元素是隱藏/可見的?

我想停止對用戶實際上看不見的視頻,任何想法如何實現?

我曾嘗試做類似的事情,但我猜這裏有「每個」缺失,並且它在所有時間點擊後都能正常工作(確定,實際上它不起作用,因爲「this」在這裏用錯了我猜,但你明白了吧,對不起,我不是一個JS-傢伙在所有:():

document.on('click', ".videojs:hidden", function(){ 
    alert('video hidden!');  
    jQuery(this).player.pause(); 
}); 
+0

你只有一個視頻或更多? – Dion 2012-01-03 14:09:09

+0

@ DRP96,我有他們無限數量,從5到「很多」:) – Wordpressor 2012-01-03 14:10:51

回答

1

我想你想看看使用setInterval()喜歡的東西:

var videoInterval = setInterval(function() { 
    // video check logic here 
}, 1000); 

上面的代碼會每秒鐘運行你的視頻檢查(1000毫秒),你也可以使用$(而不是jQuery(。如果您需要因任何原因停止檢查的「循環」,則videoInterval變量將允許您使用clearInterval()。我相信這個代碼將需要在您的$(document).ready(function() {...})區塊內。

+0

我不能,週期時間可以改變+什麼時候用戶決定手動循環? – Wordpressor 2012-01-03 14:10:28

+0

您可以清除間隔並設置一個新的間隔來更改計時器。您也可以清除間隔,並在用戶手動循環時再次啓動。你的另一種選擇是鉤住你的循環邏輯(如果你使用的是插件,大多數提供一個插件循環時調用的回調函數),然後關閉隱藏的電影。 – 2012-01-03 14:17:05

相關問題