Skip to content

HTML5 Modals#34

Open
developit wants to merge 1 commit intoconnors:masterfrom
developit:modal-dialog
Open

HTML5 Modals#34
developit wants to merge 1 commit intoconnors:masterfrom
developit:modal-dialog

Conversation

@developit
Copy link
Contributor

This addresses #8 by adding default photon styling to the HTML5 <dialog> element.

Rationale:

<dialog> provides keyboard shortcuts and backdrop styling, and includes DOM methods to control modal behavor:

Method Description
showModal() Show the dialog with a backdrop preventing further interaction
show() Show the dialog but allow interaction with any partial obscured content
close(result) close the dialog. Accepts a value, which is passed on to the close event that is emitted

JSFiddle Demo:

http://jsfiddle.net/developit/ymx5qev6/

Preview:

preview

@radare
Copy link

radare commented Apr 28, 2017

jsfiddle doesnt works for me

@EvanKnowles
Copy link

This worked great for me, thanks.

@alkame
Copy link

alkame commented Mar 28, 2021

Step 1) Add HTML:

Example

Open Modal

×

Some text in the Modal..

Step 2) Add CSS:

Example
/* The Modal (background) /
.modal {
display: none; /
Hidden by default /
position: fixed; /
Stay in place /
z-index: 1; /
Sit on top /
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/Box /
.modal-content {
background-color: #fefefe;
margin: 15% auto; /
15% from the top and centered /
padding: 20px;
border: 1px solid #888;
width: 80%; /
Could be more or less, depending on screen size */
}

/* The Close Button */
.close {
color: #aaa;
float: right;
font-size: 28px;
font-weight: bold;
}

.close:hover,
.close:focus {
color: black;
text-decoration: none;
cursor: pointer;
}
Step 3) Add JavaScript:

Example
// Get the modal
var modal = document.getElementById("myModal");

// Get the button that opens the modal
var btn = document.getElementById("myBtn");

// Get the element that closes the modal
var span = document.getElementsByClassName("close")[0];

// When the user clicks on the button, open the modal
btn.onclick = function() {
modal.style.display = "block";
}

// When the user clicks on (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";
}
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

4 participants