Автозапуск видео на YouTube с использованием Foundation 6 Reveal
Я искал и искал, но могу найти только очень старые сообщения об этом. То, что я хочу сделать, - это создать несколько модалов Foundation 6 Reveal, которые открывают видео YouTube, которые будут автоматически воспроизводиться, и останавливают видео / аудио, когда модал закрыт.
Вот базовая настройка. Любая помощь будет отличной!!
<p><a data-open="videoModal-01">Click me for a modal 01</a></p>
<p><a data-open="videoModal-02">Click me for a modal 02</a></p>
<!-- modal 01 -->
<div class="reveal" id="videoModal-01" data-reveal>
<div class="responsive-embed">
<iframe width="560" height="315" src="https://www.youtube.com/embed/4krs7z2bjlE" frameborder="0" allowfullscreen></iframe>
</div>
<button class="close-button" data-close aria-label="Close modal" type="button">
<span aria-hidden="true">×</span>
</button>
</div>
<!-- modal 2 -->
<div class="reveal" id="videoModal-02" data-reveal>
<div class="responsive-embed">
<iframe width="560" height="315" src="https://www.youtube.com/embed/c8aFcHFu8QM" frameborder="0" allowfullscreen></iframe>
</div>
<button class="close-button" data-close aria-label="Close modal" type="button">
<span aria-hidden="true">×</span>
</button>
</div>
1 ответ
Я бы создал модальные версии Reveal через JS и использовал API YouTube IFrame Player для создания, загрузки, запуска и остановки видео. Вот частичный прототип, чтобы вы начали (в нем отсутствует функциональность плеера).
var $dialog = $('#revealDialog');
if ($dialog.length === 0) {
// init dialog
$dialog = $('<div id="revealDialog" class="reveal dialog" data-reveal><div id="revealDialogContent"></div>');
new Foundation.Reveal($dialog);
// attach to to-be-loaded dialog close button(s)
$(document).on('click', '.button-dialog-close', function () {
//stop player, e.g. player.stopVideo();
$dialog.foundation('close');
return false;
});
}
// set dialog's content
$('#revealDialogContent').html('<div id="player"></div><button class="close-button" data-close aria-label="Close modal" type="button"><span aria-hidden="true">×</span>');
// create player and play it on the ready event
// player = new YT.Player('player'.....
// show it modal
$dialog.foundation('open');