2012-01-03 5 views
3

У меня есть несколько видео HTML5 на моем веб-сайте (в пределах слайдера), они автоматически переключаются каждые x секунд (или когда пользователь нажимает «следующий слайд»).jQuery как постоянно проверять, скрыт/невидим элемент?

Я хочу остановить видео, которые на самом деле невидимы для пользователя, любые идеи, как это достичь?

Я попытался сделать что-то подобное, но я думаю, что «каждый» отсутствует, и он работает после щелчка, а не все время (нормально, на самом деле это не работает, потому что «это» используется неправильно здесь. , но вы получите точку, извините, я не JS-парень вообще :():

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

у вас есть только одно видео или больше? – Dion

+0

@ DRP96, у меня есть неограниченное количество из них, от 5 до «много» :) – Wordpressor

ответ

1

Я думаю, что вы хотите посмотреть в использовании setInterval() что-то вроде:.

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

Вышеупомянутый код будет запускать вашу проверку видео каждую секунду (1000 миллисекунд). Возможно, вы также можете использовать $( вместо jQuery(. Переменная videoInterval позволит вам использовать clearInterval(), если вам необходимо остановить «цикл» проверок по любой причине. Я считаю, что этот код должен быть внутри вашего блока $(document).ready(function() {...}).

+0

Я не могу, время цикла можно изменить +, когда пользователь решает цикл вручную? – Wordpressor

+0

Вы можете очистить интервал и установить новый, чтобы изменить таймер. Вы также можете очистить интервал и запустить его снова, когда пользователь циклически рубит. Другой вариант заключается в том, чтобы подключиться к вашей циклической логике (если вы используете плагин, большинство из них предоставляют функцию обратного вызова, вызываемую при циклических циклах) и затем отключать скрытый фильм (ы). –

Смежные вопросы