Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to open a CSS-only popup automatically on page load/using Javascript?

I've created CSS-only popup which is working only by clicking on the link/button. I want to show this popup automatically on page load. Also, how this popup can be opened without clicking on the link/button i.e. By using Javascript/jQuery.

Fiddle

.modalDialog {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 99999;
  opacity: 0;
  -webkit-transition: opacity 400ms ease-in;
  -moz-transition: opacity 400ms ease-in;
  transition: opacity 400ms ease-in;
  pointer-events: none;
}
.modalDialog:target {
  opacity: 1;
  pointer-events: auto;
}
.modalDialog > div {
  width: 400px;
  position: relative;
  margin: 10% auto;
  padding: 5px 20px 13px 20px;
  border-radius: 10px;
  background: #fff;
  background: #339999;
}
.close {
  background: #606061;
  color: #FFFFFF;
  line-height: 25px;
  position: absolute;
  right: -12px;
  text-align: center;
  top: -10px;
  width: 24px;
  text-decoration: none;
  font-weight: bold;
  -webkit-border-radius: 12px;
  -moz-border-radius: 12px;
  border-radius: 12px;
  -moz-box-shadow: 1px 1px 3px #000;
  -webkit-box-shadow: 1px 1px 3px #000;
  box-shadow: 1px 1px 3px #000;
}
.close:hover {
  background: #00d9ff;
}
<a href="#openModal">Open Modal</a>

<div id="openModal" class="modalDialog">
  <div>
    <a href="#close" title="Close" class="close">X</a>

    <p style="color:white">This is a sample modal box that can be created using the powers of CSS3.</p>

  </div>
</div>

Thanks in advance

like image 286
kiran Avatar asked Aug 26 '15 08:08

kiran


1 Answers

There is no need of jQuery, you can accomplish this using Vanilla Javascript. To open the popup automatically on page load, set the hash to the id of popup.

Demo

function openPopup() {
  window.location.hash = 'openModal';
}

window.onload = openPopup;
.modalDialog {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 99999;
  opacity: 0;
  -webkit-transition: opacity 400ms ease-in;
  -moz-transition: opacity 400ms ease-in;
  transition: opacity 400ms ease-in;
  pointer-events: none;
}
.modalDialog:target {
  opacity: 1;
  pointer-events: auto;
}
.modalDialog > div {
  width: 400px;
  position: relative;
  margin: 10% auto;
  padding: 5px 20px 13px 20px;
  border-radius: 10px;
  background: #fff;
  background: #339999;
}
.close {
  background: #606061;
  color: #FFFFFF;
  line-height: 25px;
  position: absolute;
  right: -12px;
  text-align: center;
  top: -10px;
  width: 24px;
  text-decoration: none;
  font-weight: bold;
  -webkit-border-radius: 12px;
  -moz-border-radius: 12px;
  border-radius: 12px;
  -moz-box-shadow: 1px 1px 3px #000;
  -webkit-box-shadow: 1px 1px 3px #000;
  box-shadow: 1px 1px 3px #000;
}
.close:hover {
  background: #00d9ff;
}
<a href="#openModal">Open Modal</a>

<div id="openModal" class="modalDialog">
  <div>
    <a href="#close" title="Close" class="close">X</a>

    <p style="color:white">This is a sample modal box that can be created using the powers of CSS3.</p>

  </div>
</div>

<br />
<br />
<button onclick="openPopup()">Open popup by Javascript</button>

You can also create a generic function to open the popups:

function openPopup(popupId) {
    window.location.hash = popupId;
}
like image 189
Tushar Avatar answered Oct 23 '22 03:10

Tushar