如何在点击每张图片时显示灯箱?

时间:2017-05-23 06:31:24

标签: jquery html css

我想在点击每张图片时显示灯箱。我想为每个图像保留相同的类和名称。我的想法是使页面动态化,这就是为什么我在图像标记上保留了相同的id和类。

当我点击第一张图片时,灯箱正在打开,但是当我为第二张和第三张图片保留相同的ID和类时,灯箱没有打开。我想在点击每张图片时显示灯箱。

<head>
<style>

    /* 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.4); /* Black w/ opacity */
    }

    /* Modal Content */
    .modal-content {
        background-color: #fefefe;
        margin: auto;
        padding: 20px;
        border: 1px solid #888;
        width: 80%;
    }

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

    .close:hover,
    .close:focus {
        color: #000;
        text-decoration: none;
        cursor: pointer;
    }
    </style>

</head>



<body>




<!-- Trigger/Open The Modal -->
<a href="#" id="myBtn"><img src="http://theparlour21.se/wp-content/uploads/2015/07/granat-salad.png"></a>
<a href="#" id="myBtn"><img src="http://theparlour21.se/wp-content/uploads/2015/07/granat-salad.png"></a>
<a href="#" id="myBtn"><img src="http://theparlour21.se/wp-content/uploads/2015/07/granat-salad.png"></a>

<!-- The Modal -->
<div id="myModal" class="modal">

  <!-- Modal content -->
  <div class="modal-content">
    <span class="close">&times;</span>
    <p>Some text in the Modal..</p>
  </div>

</div>



<script>
// Get the modal
var modal = document.getElementById('myModal');

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

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

// When the user clicks 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";
    }
}
</script>

</body>

2 个答案:

答案 0 :(得分:0)

工作代码。试试这个。

<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
<style>

    /* 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.4); /* Black w/ opacity */
    }

    /* Modal Content */
    .modal-content {
        background-color: #fefefe;
        margin: auto;
        padding: 20px;
        border: 1px solid #888;
        width: 80%;
    }

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

    .close:hover,
    .close:focus {
        color: #000;
        text-decoration: none;
        cursor: pointer;
    }
    </style>

</head>
<body>
<!-- Trigger/Open The Modal -->
<a href="#" id="myBtn" class="myBtn"><img src="http://theparlour21.se/wp-content/uploads/2015/07/granat-salad.png"></a>
<a href="#" id="myBtn" class="myBtn"><img src="http://theparlour21.se/wp-content/uploads/2015/07/granat-salad.png"></a>
<a href="#" id="myBtn" class="myBtn"><img src="http://theparlour21.se/wp-content/uploads/2015/07/granat-salad.png"></a>

<!-- The Modal -->
<div id="myModal" class="modal">

  <!-- Modal content -->
  <div class="modal-content">
    <span class="close">&times;</span>
    <p>Some text in the Modal..</p>
  </div>
</div>
<script>
// Get the modal
var modal = document.getElementById('myModal');

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

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

// When the user clicks the button, open the modal 
// btn.onclick = function() {
//     modal.style.display = "block";
// }
$(".myBtn").click(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";
    }
}
</script>
</body>

答案 1 :(得分:0)

<a href="#" id="myBtn" class="popupmodel"><img src="http://theparlour21.se/wp-content/uploads/2015/07/granat-salad.png"></a>
<a href="#" id="myBtn" class="popupmodel"><img src="http://theparlour21.se/wp-content/uploads/2015/07/granat-salad.png"></a>
<a href="#" id="myBtn" class="popupmodel"><img src="http://theparlour21.se/wp-content/uploads/2015/07/granat-salad.png"></a>

<!-- The Modal -->
<div id="myModal" class="modal">

  <!-- Modal content -->
  <div class="modal-content">
    <span class="close">&times;</span>
    <p>Some text in the Modal..</p>
  </div>

</div>




$(document).ready(function(){

    $(document).on("click",".close,.modal", function(){
            $(".modal").hide();
    });

    $(document).on("click",".popupmodel", function(){
            $(".modal").show();
    });
});

fiddle link