2017-05-23 11 views
-1

各画像をクリックするとライトボックスが表示されます。私はそれぞれの画像のために同じクラスと名前を保持したい。アイデアは、イメージタグに同じIDとクラスを保持している理由で、ページを動的にすることです。各画像をクリックしてライトボックスを表示する方法は?

最初のイメージをクリックするとライトボックスが開きますが、2番目と3番目のイメージで同じ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> 
+1

それは同じイメージを持つ複数の要素を持つことは良い考えではありません。そのためにクラスを使用する –

+0

複数の同じIDを持つページで複数の同じクラスを使用することを検討してください。 –

+0

これをjavascriptやjQueryで実現したいですか? – vel

答えて

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

+0

ありがとうございます。 –

+0

お手伝いをしてうれしい – vel

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> 
関連する問題