2016-07-25 5 views
0

Я пытаюсь отобразить элемент, когда видео приостановлено. Я использую video.js, и в настоящее время классы добавляются, если видео воспроизводится, приостановлено, завершено и т. Д.Постоянно проверяйте, когда добавлен класс CSS

Что я не могу сделать, это проверить с помощью .hasClass() и отобразить элемент. До сих пор я использую это:

if ($('.video-js').hasClass('vjs-paused')) { 
    $('.btn').addClass('show');} 
    else { 
     $('.btn').removeClass('show'); 

    } 

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

Я также видел плагин под названием watch, но не знаю, как его использовать.

Это codepen:

https://codepen.io/florinsimion/pen/wWjxzA

ответ

1

Похоже, .video-js не является правильным элементом для прослушивания.

Вы можете использовать videojs API:

player.on('pause', function() { 
    $('.btn').addClass('show'); 
}); 

player.on('play', function() { 
    $('.btn').removeClass('show'); 
}); 

См CodePen

Или слушать события объекта видео с помощью JQuery:

$(function() { 
    $('video#content_video_html5_api').on('play pause', function() { 
    $('.btn').toggleClass('show', $(this).get(0).paused); 
    }); 
}); 
+0

Спасибо за ответ, но он не работает. –

+0

Ручка в ответе действительно работает здесь, в Firefox и Chrome (но только не во время рекламы, что я считаю нормальным) –

+0

Работает в Firefox для меня, но не в Chrome. –

5

Вам не нужно делать постоянно, что снижает производительность браузера. video элемент имеет события, которые могут быть Слушали:

$('.video-js').on('pause play', function() { 
    if ($(this).hasClass('vjs-paused')) { 
    $('.wrapper').addClass('show'); 
    } else { 
    $('.wrapper').removeClass('show'); 
    } 
}); 
+0

Спасибо за ответ ... У меня есть обновил мою ручку, но все еще не работает. –

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