【问题标题】:Click to play YT video and hide div点击播放YOUTUBE视频并隐藏div
【发布时间】:2014-03-30 19:56:42
【问题描述】:

不是我在这里的第一篇文章,但丢失了登录凭据,所以重新开始。

我需要实现的是将一些原始 Javascript 与 JQuery 结合起来。我有一个 YouTube 视频 (iframe),我的客户希望它覆盖一个带有 HTML 内容的 div,然后单击覆盖的 div 中的图像播放视频并隐藏覆盖的 div。

这是我目前所拥有的。

<iframe src="//www.youtube.com/embed/6TgyvSQlJtI?wmode=transparent&enablejsapi=1&rel=0&autohide=1" frameborder="0" allowfullscreen id="video"></iframe>

$( document ).ready(function() {
$('#education-graphic').click(function() {
    $('#video-content-overlay').fadeOut('fast');
}); 
$('#video-back').click(function() {
    $('#video-content-overlay').fadeIn('fast');
}); 
});


var player;
function onYouTubePlayerAPIReady() {
player = new YT.Player('video', {
events: {
'onReady': onPlayerReady
}
});
}
function onPlayerReady(event) {
var playButton = document.getElementById("education-graphic");
playButton.addEventListener("click", function() {
player.playVideo();
});
var pauseButton = document.getElementById("video-back");
pauseButton.addEventListener("click", function() {
player.pauseVideo();
});
}
var tag = document.createElement('script');
tag.src = "//www.youtube.com/player_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

问题出在 ipad 上,其中两个点击事件附加到同一个元素,所以我需要一些方法来隐藏和显示带有原始 js 的 div 或使用 jquery 播放和暂停视频。

是的,我知道 JQuery 是 JS,但我无法让它工作。

在此之前为您提供任何帮助。

【问题讨论】:

    标签: javascript jquery video youtube youtube-api


    【解决方案1】:

    以下应该有效:

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
    
    <style>
       .oVideo {
          width: 300px;
          height: 150px;
          background-color: #f00;
       }
    </style>
    
    <div class="oVideo">
    </div>
    
    <script>
       $(document).ready(function () {
          $('.oVideo').click(function () {
             var video = '<iframe src="http://www.youtube.com/embed/6TgyvSQlJtI?wmode=transparent&enablejsapi=1&rel=0&autohide=1&autoplay=1" frameborder="0" allowfullscreen id="video"></iframe>';
             $('.oVideo').html(video);
          });
       });
    </script>
    

    您只需将背景颜色替换为您的图片即可。

    如果您使用 CSS 将 '.oVideo' 的光标设置为 'pointer',则可以对此进行优化。

    【讨论】:

    • 感谢 ReeCube 的回复,但我想你有点误解了。您的代码会将视频放在 div 中,但我还需要在单击另一个元素(锚)时将其删除
    • 抱歉,Ree 解释得太快了。正在发生的是一个包含 youtube iframe 嵌入的 div,然后绝对位于其顶部的是另一个 100% 宽度 100% 高度的 div,其中包含一些内容和一个按钮。该按钮需要隐藏绝对定位的 div 并同时单击播放视频。还有第二个按钮需要能够停止视频并恢复绝对定位的 div。目前我有代码来停止和启动视频(yt player api),还有一些 JQuery 来显示和隐藏 div。问题在于将两者合并。
    • 要么移动到原始 js 并单击一次执行这两个操作,要么完全移动到 jquery 并且对于打开/播放和关闭/暂停按钮也会发生同样的情况。希望这更清楚。
    • 可以自己工作,但不会播放和暂停视频,同样的问题,需要在一个元素上使用两个点击功能。
    • 你必须一个接一个地添加它们,先执行toggle然后在同一个函数中执行播放暂停函数
    猜你喜欢
    • 2016-07-26
    • 1970-01-01
    • 2017-07-31
    • 2013-06-12
    • 1970-01-01
    • 2018-05-27
    • 2016-06-17
    • 2016-02-12
    • 1970-01-01
    相关资源
    最近更新 更多