Lækker, responsive modal-popup
Her er en fuldt responsive modal-boks, som er let at style og ser fint ud på både desktop og mobil.
Den består af en stump javascript, en stump CSS og så selve indholdet i modalen i HTML.
Vi starter med CSSen:
body {font-family: Arial, Helvetica, sans-serif;}
/* Modal-baggrund */
.modal {
display: none; /* Skjult som standard */
position: fixed; /* Blive hvor den er */
z-index: 1; /* Vises oeverst */
left: 0;
top: 0;
width: 100%; /* Fuld bredde */
height: 100%; /* Fuld dhoejde */
overflow: auto; /* Scroll hvis nødvendigt (undgaa helst) */
background-color: rgb(0,0,0); /* Garderings-farve */
background-color: rgba(0,0,0,0.5); /* Sort - svagt gennemsigtig */
margin-bottom: 0px;
}
/* Modal-indhold */
@media only screen and (max-device-width : 768px){
.modal-indhold {
background-color: #fefefe;
margin: 15% auto; /* 15% fra top og centreret */
padding: 10px 10px 10px 10px;
border: 1px solid #333;
width: 80%; /* Sat hoejt paa mobil */
}
}
@media only screen and (min-device-width : 769px){
.modal-indhold {
background-color: #fefefe;
margin: 15% auto; /* 15% fra top og centreret */
padding: 10px 10px 10px 20px;
border: 1px solid #333;
width: 40%; /* Sat lavt paa desktop for at goere det laesevenligt*/
}
}
/* The Close Button */
.close {
position: relative;
top: -12px;
color: #888;
float: right;
font-size: 40px;
font-weight: bold;
}
.close:hover,
.close:focus {
color: black;
text-decoration: none;
cursor: pointer;
}
/* Modal-trigger */
#myTrigger {
margin-bottom: 0px;
padding: 0px 0px 4px 0px;
text-align: left;
cursor:pointer;
display: inline;
}
Javascript delen
// Get the modal
var modal = document.getElementById("myModal");
// Get the button that opens the modal
var btn = document.getElementById("myTrigger");
// 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";
}
}
Og så lidt HTML
<button id="myTrigger">I tvivl om hvilken variant du skal vælge?</div> <div id="myModal" class="modal"> <!-- Modal-indhold --> <div class="modal-indhold"><span class="close">×</span> <p style="margin: 0px; padding-right: 10px;">Hvis du ikke er sikker på, hvad du skal vælge, så er du altid velkommen til at kontakte os.</p> </div> </div>
Denne snippet blev indsendt af Puretime.dk