【问题标题】:Vimeo video still running on background after minimizing the pop up最小化弹出窗口后,Vimeo 视频仍在后台运行
【发布时间】:2015-07-21 07:33:13
【问题描述】:

我在我的网站中嵌入了 vimeo 视频,但是当我在弹出窗口之外单击或单击弹出窗口的关闭按钮时,视频继续在后台播放。

但我需要在弹出窗口关闭时停止视频。

<div class="nav-watch">
    <a class="arw-link"  data-toggle="modal" data-target=".video-modal" href="#">
        Watch Film  <span class="glyphicon glyphicon-menu-right"></span>
    </a>
</div>

<div class="modal fade video-modal" id="videomodel" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel">
    <div class="modal-dialog modal-lg">
        <div class="modal-content">
            <button type="button" class="closed" data-dismiss="modal" aria-label="Close">
                <span class="glyphicon glyphicon-remove-circle"></span>
            </button>
            <div class="modal-body">
                <div class="embed-responsive embed-responsive-16by9">
                    <iframe src="https://player.vimeo.com/video/105864353" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>
                </div>
            </div>
        </div>
    </div>
</div>

谁能帮我关闭关闭视频? 提前致谢

【问题讨论】:

    标签: php jquery wordpress video vimeo


    【解决方案1】:

    由于您使用的是 Bootstrap 模态,因此您可以侦听 hidden.bs 事件,该事件会在模态隐藏时触发。

    Bootstrap Modal Events

    hidden.bs.modal

    当模式对用户完成隐藏时触发此事件(将等待 CSS 转换完成)​​。

    在事件处理程序中,您可以像这样清除 iframe src 属性。

    $('#videomodel').on('hidden.bs.modal', function (e) {
        $('iframe').attr('src', '');
    })
    

    要在显示模式时填充 iframe src 属性,您可以通过在触发模式的元素上使用 data 属性来传递它。

    Varying modal content based on trigger button

    有一堆按钮都触发相同的模式,只是内容略有不同?使用 event.relatedTarget 和 HTML data-* 属性(可能通过 jQuery)根据单击的按钮来改变模式的内容。有关relatedTarget 的详细信息,请参阅模态事件文档,

    <a class="arw-link" 
        data-toggle="modal"
        data-target=".video-modal"
        href="#"
        data-video-src="https://your-video-url"> <!-- Video URL goes here!!! -->
        Watch Film  <span class="glyphicon glyphicon-menu-right"></span>
    </a>
    

    然后监听模式显示并将data-video-src的值添加到iframe src

    $('#videomodel').on('show.bs.modal', function (event) {
        var button = $(event.relatedTarget);
        var videoSrc = button.data('video-src');
        var modal = $(this);
        modal.find('iframe').attr('src', videoSrc);
    })
    

    这是Fiddle,因为我们不能在 SO sn-ps 中使用 iframe。

    【讨论】:

    • 伟大的大卫,您的回答接近要求。但并不是我所期望的。首先,视频在您的演示中停止后无法播放一次。但是我也需要在它停止后重新运行视频。不过谢谢你的回答。
    • 你的意思是视频暂停的时候?您可以使用上述解决方案多次重新播放视频。
    • 不,我的意思是视频应该停止,什么时候应该能够从头开始重新播放
    • 你看小提琴了吗?我已经用 vimeo 的一个例子更新了我的答案。从头开始重新运行视频没有问题。对不起,请不要误会我的意思,我只是想理解你的意思。从您发布的问题中,我会说我添加的小提琴正是您所需要的。并且使用引导模式事件非常适合操作模式的内容。
    • 谢谢伙计,您为我的解决方案投入了时间,虽然它与我期望的不完全一样,但非常接近解决方案,这是我为自己的解决方案制作的演示 @987654324 @
    【解决方案2】:

    谢谢大家,

    我终于找到了解决办法,

    有几行 jquery 可以帮助我。

    videoSRC = $('iframe').attr('src');
      $(' button.closed').click(function () {
          $(' iframe').attr('src', videoSRC);
      });
    
     $('.video-modal').on('hidden.bs.modal', function (e) {
          $(' iframe').attr('src', videoSRC);
     });
    

    我也在 jsfiddle 中做了演示。

    点击这里查看演示

    DEMO

    【讨论】:

    • 对不起,但对我来说没有多大意义,首先你的$('button.clocse') 不可点击,因为错误的定位和z-index,其次这是什么假设。 iframe src 将始终相同。好吧反正我出去了。
    • 关闭按钮是可点击的,我遇到的问题是我们第一次点击播放后,视频似乎播放但停止,我们需要再次播放,但我的解决方案是,在我们点击播放按钮。单击关闭按钮或在弹出窗口之外继续播放并停止,背景视频停止。这就是区别。但我真的很感谢你对这个问题的关注。谢谢队友:)
    【解决方案3】:

    我以前遇到过这个问题。如果我没记错的话,问题发生在 Firefox 和 IE 上,但不是其他浏览器。

    这取决于您的弹出窗口的工作方式。当您关闭一个弹出窗口时,弹出窗口的 HTML 标记是否会完全从 DOM 中删除?检查控制台中的元素选项卡。

    一些模态弹出系统只是隐藏弹出窗口,但它仍然存在于文档中。一些浏览器无法判断视频不再对用户可见,因此视频会继续播放。

    因此,要解决此问题,您必须确保当弹出窗口“关闭”时,它实际上已被完全销毁并完全从文档中删除,而不仅仅是隐藏。

    【讨论】:

    • 对不起,这发生在所有浏览器中。但在 Firefox 和 IE 中存在布局问题,但现在已解决。弹出窗口关闭后,我需要自动停止视频。干杯!!
    【解决方案4】:

    你可以试试这个。

    <script src="http://a.vimeocdn.com/js/froogaloop2.min.js"></script>
    $('.close').click(function() {
        var iframe = $('#vimeo-player')[0];
        var player = $f(iframe);
        player.api('unload');
    });
    

    vimeo-player 是 iframe 的 id

    var video = $("#playerid").attr("src");
    $("#vimeo-player").attr("src","");
    $("#vimeo-player").attr("src",video);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-25
      • 1970-01-01
      • 2019-03-28
      • 2016-08-26
      • 2011-03-30
      • 2023-04-06
      • 1970-01-01
      相关资源
      最近更新 更多