Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HTML5 Modals #34

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

HTML5 Modals #34

wants to merge 1 commit into from

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
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants