Я использую Flexslider 2 для создания простого списка воспроизведения iFrames YouTube. У меня есть код для приостановки YouTube при смене слайдов и тому подобного, но большая проблема - это область управления YouTube. Я думаю, это связано с тем, что FitVids.js заставляет кликабельную область iframe увеличиваться. Странно то, что если я уберу FitVids.js из кода, Flexslider 2 перестанет работать с iframe.
Интерактивная область находится в верхнем левом углу около 200 пикселей в высоту и 400 пикселей в ширину. Ширина видео составляет 960 пикселей, и все, что соответствует требованиям Fitvids, - это необходимая высота.
Вот код, который я использую:
$(window).load(function() {
function ready(player_id) {
var froogaloop = $f(player_id);
froogaloop.addEvent('play', function(data) {
jQuery('.flexslider').flexslider("pause");
});
froogaloop.addEvent('pause', function(data) {
jQuery('.flexslider').flexslider("play");
});
}
// Call fitVid before FlexSlider initializes, so the proper initial height can be retrieved.
$(".flexslider").fitVids().flexslider({
animation: "slide",
animationLoop: false,
smoothHeight: true,
slideshow: true,
pauseOnHover:true,
useCSS: false,
video: true,
before: function(slider){
if (slider.slides.eq(slider.currentSlide).find('iframe').length !== 0)
$f( slider.slides.eq(slider.currentSlide).find('iframe').attr('id') ).api('pause');
// ------------------ YOUTUBE FOR AUTOSLIDER ------------------
playVideoAndPauseOthers($('.flexvid iframe')[0]);
}
});
function playVideoAndPauseOthers(frame) {
$('iframe').each(function(i) {
var func = this === frame ? 'playVideo' : 'stopVideo';
this.contentWindow.postMessage('{"event":"command","func":"' + func + '","args":""}', '*');
});
};
// ------------------ PREV & NEXT BUTTON FOR FLEXSLIDER (YOUTUBE) ------------------
$('.flex-next, .flex-prev').click(function() {
playVideoAndPauseOthers($('.flexvid iframe')[0]);
});
});
ИЗМЕНИТЬ Я только что узнал, что в Chrome все работает нормально, но не в Firefox.