youtube - 无法在转盘/滑块中滑动过去的iframe

时间:2015-01-27 21:48:33

标签: javascript jquery iframe youtube youtube-api

我有一个带旋转木马的快速响应网站。用户可以将YouTube视频嵌入其中一个幻灯片中。在桌面上这很好用。在移动设备上,iframe显然会吃掉所有滑动事件,但您无法滑过视频。我们不得不通过替换视频图像来解决这个问题,然后使用window.open()打开一个带视频的新窗口。

太糟糕了。

有没有一种方法可以克服这个问题?

2 个答案:

答案 0 :(得分:2)

简而言之,我发现我做错了。

滑块脚本在两个桌面上都能很好地工作。在移动设备上,它可以正常工作,但您无法滑过嵌入视频的iframe

我的示例iframe是: <iframe width="1280" height="720" src="//www.youtube.com/embed/Lzbr6fPDmkE" frameborder="0" allowfullscreen></iframe>(如果你是一名军队兽医,这是一个有趣的视频)

我发现了(有点明显)youtube也有缩略图网址的事实。因此,在移动设备上,我添加了以下img标记:

<img src="http://i.ytimg.com/vi/Lzbr6fPDmkE/hqdefault.jpg" alt="1300x650" />

我在this article

中找到了答案

我使用的网址与他们的网址不同,因为我在gmail邮件中将其从嵌入的youtube缩略图中删除。

答案 1 :(得分:0)

必须在网址中包含以下属性。

rel=0&enablejsapi=1

注意:浏览注释行并在头部添加滑块库文件并保存。一旦添加了所有内容,您必须在浏览器中打开文件。你可以看到滑块。如果发现任何问题,请在下面评论。

$('.slider').click();
var player;

function onYouTubeIframeAPIReady() {
  player = new YT.Player('videoSwipe', {
    events: {
      'onReady': onPlayerReady,
      'onStateChange': onPlayerStateChange
    }
  });
}

function onPlayerReady(e) {
  $('.youTubeVideo').find('.video').addClass('video-overlay');
}

function OverlayOnVideo(playerStatus) {
  if (playerStatus == 2) {
    $('.youTubeVideo').find('.video').addClass('video-overlay');
    var iframeHeight=$('#videoSwipe').height()-40;
		var overlayHeight=$(document).find('.video-overlay');
		if ( overlayHeight.length >= 1 ) {
			overlayHeight.css('height', iframeHeight+'px');
 			}else{
			$('.youTubeVideo .tube').removeAttr( 'style' );
		}
  }
}

function onPlayerStateChange(e) {
  OverlayOnVideo(e.data);
}

$(document).on("click", ".video-overlay", function() {
  if (player) {
    player.playVideo();
    $('.youTubeVideo').find('.video').removeClass('video-overlay');
    $('.youTubeVideo .tube').removeAttr( 'style' );
  }
});
.youTubeVideo {
  position: relative;
}

#wrapper {
  width: 30%;
  margin: auto;
}

.slick-list draggable {
  margin-top: 3%;
}

body {
  outline: none;
  background: black;
}

:focus {
  outline: none;
}

.slick-list.draggable {
  margin-top: 10px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="wrapper">
  <div class="slider">
    <div><img src="http://placekitten.com/500/480" alt="" width="500" height="400"></div>
    <div class="youTubeVideo">
      <div class="video tube"></div>
      <iframe id="videoSwipe" width="465" height="400" src="https://www.youtube.com/embed/exUQkIkyBBI?rel=0&enablejsapi=1"></iframe>
    </div>
    <div><img src="http://placekitten.com/500/480" alt="" width="500" height="400"></div>
    <div><img src="http://placekitten.com/500/460" alt="" width="500" height="400"></div>
    <div><img src="http://placekitten.com/500/440" alt="" width="500" height="400"></div>
    <div><img src="http://placekitten.com/500/420" alt="" width="500" height="400"></div>
  </div>
</div>