Simple modal HTML dialog overlay

In case you don’t want to deploy full fledged JavaScript libraries, such as jQuery or Dojo, to implement a simple modal HTML dialog overlay here is a quick and easy way to do so based on plain HTML, CSS and JavaScript. It works on all modern browsers.

First, let’s have a look at the CSS code:

#DialogOverlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 99999;
    background: rgba(0, 0, 0, 0.5);
    display: none;
}
#DialogOverlayContent {
    position: absolute;
    top: 40%;
    left: 15%;
    color: #000;
    text-align: center;
    width: 70%;
    height: 200px;
    z-index: 999999;
    background: rgba(255, 255, 255, 1);
    border: 2px solid;
    border-radius: 25px;
}
#DialogOverlayContent > p {
    color: #000;
    margin-top: 50px;
}

And the corresponding JavaScript code:

function showFormDialog() {
    // using plain JavaScript
    document.getElementById('DialogOverlay').style.display = 'block';

    // using jQuery
    // $('#DialogOverlay').css('display', 'block');
}
function closeDialog() {
    // using plain JavaScript
    document.getElementById("DialogOverlay").style.display = 'none';

    // using jQuery
    // $("#DialogOverlay").css('display', 'none');
}

And finally the HTML code:

<div id="DialogOverlay">
  <div id="DialogOverlayContent">
    <p><img src="images/loading.gif" alt="" width="30" height="30" style="margin-right: 20px;"/>
    Please stand by while we process your request...<br/><br/>
    Please do not hit refresh, you will be redirected shortly!<br/><br/>
    <a href="#" onclick="closeDialog();">Close</a></p>
  </div>
</div>

A complete example can be found here:

<html>
<head>
<title>Simple modal HTML dialog overlay</title>
<script>
function showFormDialog() {
    // using plain JavaScript
    document.getElementById('DialogOverlay').style.display = 'block';

    // using jQuery
    // $('#DialogOverlay').css('display', 'block');
}
function closeDialog() {
    // using plain JavaScript
    document.getElementById("DialogOverlay").style.display = 'none';

    // using jQuery
    // $("#DialogOverlay").css('display', 'none');
}
</script>
<style>
#DialogOverlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 99999;
    background: rgba(0, 0, 0, 0.5);
    display: none;
}
#DialogOverlayContent {
    position: absolute;
    top: 40%;
    left: 15%;
    color: #000;
    text-align: center;
    width: 70%;
    height: 200px;
    z-index: 999999;
    background: rgba(255, 255, 255, 1);
    border: 2px solid;
    border-radius: 25px;
}
#DialogOverlayContent > p {
    color: #000;
    margin-top: 50px;
}
</style>
</head>
<body>

<div id="DialogOverlay">
  <div id="DialogOverlayContent">
    <p><img src="images/loading.gif" alt="" width="30" height="30" style="margin-right: 20px;"/>
    Please stand by while we process your request...<br/><br/>
    Please do not hit refresh, you will be redirected shortly!<br/><br/>
    <a href="#" onclick="closeDialog();">Close</a></p>
  </div>
</div>

<a href="#" onclick="showFormDialog();">Open dialog</a>
</body>
</html>

That’s it, pretty simple but effective 🙂

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.