微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

关闭时停止Bootstrap 4模态视频

如何解决关闭时停止Bootstrap 4模态视频

我整理了以下代码,它们可以执行以下操作: 在页面显示图像。 单击图像后,将打开一个包含可播放视频的模态。 当用户在模态外部单击时,关闭模态。 当模式关闭时,停止播放视频。 但是视频不会停止播放。 有什么帮助吗?我是编码新手。

                <!--Modal video-->
<img src="img/myimg.png" data-toggle="modal" data-target="#videoModal" />

  <div class="modal fade" id="videoModal" tabindex="-1" role="dialog" aria-labelledby="videoModal" aria-hidden="true">
    <div class="modal-dialog modal-dialog-centered">
      <div class="modal-content">
        <div class="modal-body p-0">
          <video controls width="100%" preload="auto" class="embed-responsive embed-responsive-1by1">
            <source src="vids/myvideo.mp4" type="video/mp4">
          </video>
        </div>
      </div>
    </div>
  </div> 

解决方法

您可以在.pause()hide.bs.modal播放视频(即:关闭模式后):

$('#videoModal').on('hide.bs.modal',function(e) {
    this.querySelector('video').pause();
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>

<img src="img/myimg.png" data-toggle="modal" data-target="#videoModal" />

<div class="modal fade" id="videoModal" tabindex="-1" role="dialog" aria-labelledby="videoModal" aria-hidden="true">
    <div class="modal-dialog modal-dialog-centered">
        <div class="modal-content">
            <div class="modal-body p-0">
                <video controls width="100%" preload="auto" class="embed-responsive embed-responsive-1by1">
                    <source src="https://www.w3schools.com/tags/movie.mp4" type="video/mp4">
                </video>
            </div>
        </div>
    </div>
</div>

,

这是我处理在模态中加载的任何类型的内容的方式。

点击模式外的关闭视频(或内容) - BOOTSTRAP 4

$(document).click(function(event) {
    if (!$(event.target).is("#YOUR-MODAL-ID")) {
        alert('I just clicked inside the modal');
        //does not pop up on embeded elements
    }
    else {
        --> Basically anything you want to stop playing when clicking outside the modal goes here
        --> be sure to call the right statement for whatever is inside the modal

        like:
        - var oldPlayer = document.getElementById('ID-OF-PLAYER-WRAPPER');
        - videojs(oldPlayer).dispose();
        - $("#wrapper-div-id iframe").attr("src",'');
    }
});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。