2012-01-03 88 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

相关问题