Если iframe задать display: none; то в Хроме видео всё равно будет "звучать": jsfiddle.net
Как же быть при закрытии модального окна или переключении таб-вкладок? В справке Ютуба есть указания, но без css-tricks.com с его практическим примером мне было бы не разобраться. Итак, рабочий вариант:
воспроизведение
пауза
<iframe src="//www.youtube.com/embed/JMJXvsCLu6s?rel=0&enablejsapi=1" frameborder="0" allowfullscreen id="Youtube"></iframe> <div id="playYoutube">воспроизведение</div> <div id="pauseYoutube">пауза</div> <script src="//www.youtube.com/player_api"></script> <script> function onYouTubePlayerAPIReady() { player = new YT.Player('Youtube', { events: {'onReady': onPlayerReady} }); } function onPlayerReady(event) { document.getElementById("playYoutube").addEventListener("click", function() {player.playVideo();}); document.getElementById("pauseYoutube").addEventListener("click", function() {player.pauseVideo();}); } </script>
Или так:
<div id="play"></div> <div id="playYoutube1">воспроизведение</div> <div id="pauseYoutube1">пауза</div> <script src="//www.youtube.com/player_api"></script> <script> var play; function onYouTubePlayerAPIReady() { play = new YT.Player('play', {videoId: 'JMJXvsCLu6s',}); document.getElementById('playYoutube1').onclick = function() {play.playVideo();}; document.getElementById('pauseYoutube1').onclick = function() {play.pauseVideo();}; } </script>
9 комментариев:
(пытаюсь приспособить ваш код к плагину wordpress tooltips так, чтобы при пропадании тултипа видео не продолжало проигрываться в бекграунде)
show: {
when: 'click', // Show it on mouseover...
solo: true // ...and hide all others when its shown
},
hide: 'unfocus', // Hide it when inactive...
show: {
when: 'click', // Show it on mouseover...
solo: true // ...and hide all others when its shown
},
hide: {
when: 'unfocus', // Hide it when inactive...
document.getElementById("pauseYoutube").addEventListener("blur", function() {player.pauseVideo();}); // ...и какие еще строки из кода добавить, чтобы работало?
}
Думал допилить этот плагин, чтобы использовать в свом блоге
https://wordpress.org/plugins/wordpress-tooltips/
Что касательно вопроса то:
hide: {
when: 'unfocus',
complite: function() {document.getElementById("pauseYoutube").addEventListener("blur", function() {player.pauseVideo();});}
}
Читаем документацию к плагину и смотрим какой параметр отвечает за завершение действия, он может называть и не complite а success, ready, closed и т.д. и дальше по правилам просто вставляем нужную нам функцию, которая выполнится по совершению данного действия.
jQuery неплохо утяжеляет страницу. Это пока не сильно чувствуют посетители, поскольку пока на многих сайтах (в т.ч. "пожилых", которые поддерживают IE5-6, но не мобильные и планшеты) подключена эта библиотека и она кэшируется в браузерах пользователей.
Всё больше людей довольствуются чистым JS из-за отсутствия необходимости в jQuery. Часто проще прописать код на JS для решения одной-трёх задач, чем подключать весь функционал библиотеки. Об этом говорили ещё в 2011 году, а сейчас 2014.
Спасибо за ваше дополнения, для меня оно ценно!