如何在点击时关闭弹出窗口?

时间:2017-11-28 19:39:27

标签: javascript html

我是否可以使用以下方法创建弹出窗口:

onclick="window.open(~~details~~)"

以某种方式点击弹出窗口时会关闭?

此弹出窗口是图像文件。

谢谢。

2 个答案:

答案 0 :(得分:0)

首先,你必须创建弹出窗口并发送一个功能来显示它。在这个例子中,我使用了一个按钮。

<div id="main">
<button id="popupopener" onclick="showpopup()"></button>

<div id="popup" onclick="popupclose()" style="display:none;">
<img src="./yourpath/yourimg.jpg"></img>
</div>
</div>

现在你做了JavaScript

<script>
function showpopup() {
document.getElementById("popup").style = "display:block;";
}

function popupclose() {
document.getElementById("popup").style = "display:none;";
}
</script>

如果单击该按钮,则会显示PopUp,如果单击该按钮则会隐藏自身

答案 1 :(得分:0)

希望这会对你有所帮助,

 // Get the modal
    var modal = document.getElementById('myModal');
    
    // Get the image and insert it inside the modal - use its "alt" text as a caption
    var modalImg = document.getElementById("img01");
    var captionText = document.getElementById("caption");
    function openModal(){
        modal.style.display = "block";
        modalImg.src = document.getElementById('myImg').src;
        captionText.innerHTML = document.getElementById('myImg').alt;
    }
    
    // Get the <span> element that closes the modal
    var span = document.getElementsByClassName("close")[0];
    
    // When the user clicks on <span> (x), close the modal
    span.onclick = function() { 
        modal.style.display = "none";
    }
    #myImg {
        border-radius: 5px;
        cursor: pointer;
        transition: 0.3s;
    }
    
    #myImg:hover {opacity: 0.7;}
    
    /* The Modal (background) */
    .modal {
        display: none; /* Hidden by default */
        position: fixed; /* Stay in place */
        z-index: 1; /* Sit on top */
        padding-top: 100px; /* Location of the box */
        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.9); /* Black w/ opacity */
    }
    
    /* Modal Content (image) */
    .modal-content {
        margin: auto;
        display: block;
        width: 80%;
        max-width: 700px;
    }
    
    /* Caption of Modal Image */
    #caption {
        margin: auto;
        display: block;
        width: 80%;
        max-width: 700px;
        text-align: center;
        color: #ccc;
        padding: 10px 0;
        height: 150px;
    }
    
    /* Add Animation */
    .modal-content, #caption {    
        -webkit-animation-name: zoom;
        -webkit-animation-duration: 0.6s;
        animation-name: zoom;
        animation-duration: 0.6s;
    }
    
    @-webkit-keyframes zoom {
        from {-webkit-transform:scale(0)} 
        to {-webkit-transform:scale(1)}
    }
    
    @keyframes zoom {
        from {transform:scale(0)} 
        to {transform:scale(1)}
    }
    
    /* The Close Button */
    .close {
        position: absolute;
        top: 15px;
        right: 35px;
        color: #f1f1f1;
        font-size: 40px;
        font-weight: bold;
        transition: 0.3s;
    }
    
    .close:hover,
    .close:focus {
        color: #bbb;
        text-decoration: none;
        cursor: pointer;
    }
    
    /* 100% Image Width on Smaller Screens */
    @media only screen and (max-width: 700px){
        .modal-content {
            width: 100%;
        }
    }
    <html>
    <head>
    </head>
    <body>
    
    <h2>Image Modal</h2>
    
    <img id="myImg" src="http://via.placeholder.com/350x150" alt="Demo Image" width="300" height="200" onclick="openModal()">
    
    <!-- The Modal -->
    <div id="myModal" class="modal">
      <span class="close">&times;</span>
      <img class="modal-content" id="img01">
      <div id="caption"></div>
    </div>
    
    </body>
    </html>