2017-04-19 65 views
0

想要创建多个模式弹出式菜单..下面的代码适用于一个弹出窗口,但我将如何去做3个弹出窗口?我刚学.. https://www.w3schools.com/howto/tryit.asp?filename=tryhow_css_modal显然整个代码不会糊..使用手机多模态弹出式菜单

<!DOCTYPE html> 
<html> 
<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> 

<h2>Test</h2> 

<!-- Trigger/Open The Modal --> 
<button id="myBtn">Open Modal</button> 

<!-- 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> 

<!-- Trigger/Open The Modal --> 
<button id="myBtn">Open Another</button> 

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

<!-- Modal content --> 
<div class="modal-content"> 
<span class="close">&times;</span> 
<p>Some Other Text..</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> 
</html> 
+0

这对我们也会看到您的HTML会很有帮助。 CSS中没有任何东西可以阻止你拥有三个。只有3格每个与“模态”类应该使3模态。 – isick

+0

更新的代码..你可以尝试,但它不会工作.. –

回答

0

您需要给每个模态一个唯一的ID,并相应绑定按钮。需要进行复制,改变了三件事是

  • 按钮ID ID = “myBtn”ID = “myBtn2”
  • 的模式ID ID = “myModal”id =“myModal2”
  • javascript选择按钮和模式由它们的ID document.getElementById('myModal');

现在,你的两个模态有相同的id和id应该是唯一的。所以如果你想要第二个模式(你希望通过它的id与JavaScript中的那个模式交互),那么你需要为第二个模式分配一个唯一的ID。

+0

我试过了,它似乎没有工作..我认为这个问题必须与JavaScript老实的 –

+0

@SemajRellim 那么这不是与JavaScript因为我只是在这里为你做了https://jsfiddle.net/Lnq6gtLb/有很多方法可以改进这段代码。我鼓励你花时间分析我所做的事情,并考虑如何使它更有效率,因为它会帮助你改进开发人员。祝你好运。 – isick

+0

非常感谢你,是的,它确实有帮助,我会玩更多的东西来学习更多,非常感谢你 –