【问题标题】:Stop Playing Video When I Close The Lightbox关闭灯箱时停止播放视频
【发布时间】:2017-05-18 21:08:12
【问题描述】:

我使用这个article 构建了一个弹出窗口,它看起来非常好。

这是我所做的:

<button id="open-popup">Play</button>

<div id="popup-box" class="modal">

  <div class="popup-content">
    <span class="close">&times;</span>
    <p>[vimeo shortcode]</p>
  </div>

</div>

这是css

/* The Modal (background) */
.modal {
    display: none; /* Hidden by default */
    position: fixed; /* Stay in place */
    z-index: 1; /* Sit on top */
    left: 0;
    top: 0;
    width: 100%; /* Full width */
    height: 100%; /* Full height */
    overflow: auto; /* Enable scroll if needed */
    background-color: rgb(0,0,0); /* Fallback color */
    background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
}

/* Modal Content/Box */
.popup-content {
    background-color: #fefefe;
    margin: 15% auto; /* 15% from the top and centered */
    padding: 20px;
    border: 1px solid #888;
    width: 80%; /* Could be more or less, depending on screen size */
}

/* The Close Button */
.close {
    color: #aaa;
    float: right;
    font-size: 28px;
    font-weight: bold;
}

.close:hover,
.close:focus {
    color: black;
    text-decoration: none;
    cursor: pointer;
}

这里是 JS

(function($) {          
$(document).ready(function(){

// Get the modal
var modal = document.getElementById('popup-box');

// Get the button that opens the modal
var btn = document.getElementById("open-popup");

// Get the <span> element that closes the modal
var span = document.getElementsByClassName("close")[0];

// When the user clicks on the button, open the modal 
btn.onclick = function() {
    modal.style.display = "block";
}

// When the user clicks on <span> (x), close the modal
span.onclick = function() {
    modal.style.display = "none";
}

// When the user clicks anywhere outside of the modal, close it
window.onclick = function(event) {
    if (event.target == modal) {
        modal.style.display = "none";
    }
}

});
})(jQuery);

当我点击按钮时,它工作得很好,它居中并且看起来非常好。

问题是,当我关闭弹出窗口时,视频音频仍在后台播放。

我希望视频在我关闭弹出窗口时停止。

任何帮助都会令人惊叹。

谢谢

【问题讨论】:

    标签: wordpress video popup modal-dialog lightbox


    【解决方案1】:

    您必须删除 Vimeo 内容,从而完全停止音频。如果不是这样,您将不得不使用 Vimeo API 来停止/暂停/播放视频。

    这里演示了如何做到这一点,添加一个 iFrame 作为#popup-box .popup-content 的 HTML 内容,然后将 HTML 设置为空字符串以将其删除。

    (function($) {          
        $(document).ready(function(){
    		 
             var iframe = '<iframe src="https://player.vimeo.com/video/213100067?title=0&byline=0&portrait=0&badge=0" width="640" height="360" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>';
            
             // When the user clicks on the button, open the modal 
             $("#open-popup").on('click', function(e) {
                 e.preventDefault();
                 $('#popup-box').show();
                 $('#popup-box .popup-content').html(iframe);
             });
            
             // When the user clicks on <span> (x), close the modal
             $('#popup-box .close, #popup-box').on('click', function() {
                $('#popup-box').hide();
                $('#popup-box .popup-content').html('');
             });
    
        });
    })(jQuery);
    /* The Modal (background) */
    .modal {
        display:none;
        position: fixed; /* Stay in place */
        z-index: 1; /* Sit on top */
        left: 0;
        top: 0;
        width: 100%; /* Full width */
        height: 100%; /* Full height */
        overflow: auto; /* Enable scroll if needed */
        background-color: rgb(0,0,0); /* Fallback color */
        background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
    }
    
    /* Modal Content/Box */
    .popup-content {
        background-color: #fefefe;
        margin: 15% auto; /* 15% from the top and centered */
        padding: 20px;
        border: 1px solid #888;
        width: 80%; /* Could be more or less, depending on screen size */
    }
    
    /* The Close Button */
    .close {
        color: #aaa;
        float: right;
        font-size: 28px;
        font-weight: bold;
    }
    
    .close:hover,
    .close:focus {
        color: black;
        text-decoration: none;
        cursor: pointer;
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <button id="open-popup">Play</button>
    
    <div id="popup-box" class="modal">
    	<span class="close">&times;</span>
    	<div class="popup-content">
    	</div>
    </div>

    【讨论】:

    • 感谢您的回答,我稍微调整了一下并删除了 var iframe = '';从 JS 文件中并将 iframe 放在这里 问题是在关闭视频并尝试再次播放后,它不会向您显示视频...您需要刷新页面以再次观看。有什么解决办法吗?谢谢
    • 确定了。这是一个概念证明
    • 这里的例子没有这个问题....无法判断你做了什么修改使它停止工作...
    • 我的代码有错误,请检查更新:stackoverflow.com/posts/44059727/revisions
    • 我可以看到你删除的答案。问题是:您必须移除播放器停止的 iframevar iframe 是为 iframe 存储 HTMML 而不渲染它。当我们使用.html(iframe) 时,我们就会实现它。
    猜你喜欢
    • 1970-01-01
    • 2013-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-22
    • 2018-12-19
    • 2022-09-30
    • 1970-01-01
    相关资源
    最近更新 更多