2017-04-19 114 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

非常感謝你,是的,它確實有幫助,我會玩更多的東西來學習更多,非常感謝你 –