到目前为止,我设法通过单击任何一个 div 打开一个模式。我怎样才能为一个 div 元素设置一个模态,也就是说,当我单击服务以打开服务模态时,以及当我单击即将打开模态时……等等……我还必须关闭每个打开时的模态...我不知道如何将每个 div 与其自己的模态连接起来。这是我的代码...
<div class="section">
<div class="container">
<div class="row">
<div class="col-md-4 sector">
<h3>Services</h3>
<i class="fa fa-gear"></i>
<div class="over">
<span class="tooltiptext">Show more...</span>
</div>
</div>
<div class="col-md-4 sector">
<h3>About me</h3>
<i class="fa fa-address-card-o"></i>
<div class="over">
<span class="tooltiptext">Show more...</span>
</div>
</div>
<div class="col-md-4 sector">
<h3>Contact</h3>
<i class="fa fa-phone"></i>
<div class="over">
<span class="tooltiptext">Show more...</span>
</div>
</div>
</div>
</div>
</div>
<div class="modal-container" id="myMod">
<div class="modal-content">
<span class="close">×</span>
<h1>Heading</h1>
<p>Some text goes in here...</p>
</div>
</div>
<div class="showcase">
<div class="container">
<h1>Got Ideas?</h1>
<p class="lead">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque sed sem rhoncus urna iaculis faucibus. Pellentesque ultrices nibh ac imperdiet tincidunt. Donec hendrerit velit eros</p>
<a href="about.html" class="btn btn-primary">Read More</a>
</div>
</div>
<script type="text/javascript">
// Get the button that opens the modal
var myOver = document.getElementsByClassName('over');
// Get modal to pass it to function
var modal = document.getElementById('myMod');
// get closing button
var span = document.getElementsByClassName('close')[0];
// Function to open the modal
for(var i = 0; i<myOver.length; i++){
myOver[i].addEventListener('click', function(){
modal.style.display = 'block';
});
}
// When the user clicks on <span> (x), close the modal
span.onclick = function(){
modal.style.display='none';
}
</script>
最佳答案
您可以使用类似的命名方案,只需将后缀附加到被单击的对象的 ID 即可找到正确的文本,例如,让每个 span 元素都有一个对应于它们所用模式的 ID。例如 contact
然后点击事件监听器是
function(e) { //e is the event object event
document.getElementById(e.target.id + "-modal").style.display = 'block'
}
现在将联系方式标识为“联系方式”,它应该很容易找到
至于关闭每个元素,只需遍历所有具有 modal-contain
类的元素,并在打开之前将它们的 display
设置为 none
新的
关于javascript - 我有 3 个 div,每个都有自己的主题,现在我想为每个 div 打开它的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45393739/