javascript - 如何在页面加载/使用 Javascript 时自动打开纯 CSS 弹出窗口?

标签 javascript jquery html css

我创建了纯 CSS 弹出窗口,它只能通过单击链接/按钮来工作。我想在页面加载时自动显示此弹出窗口。此外,如何在不单击链接/按钮的情况下打开此弹出窗口,即通过使用 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>

提前致谢

最佳答案

不需要 jQuery,您可以使用 Vanilla Javascript 完成此操作。 要在页面加载时自动打开弹出窗口,请将散列设置为弹出窗口的 id

演示

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>

您还可以创建一个通用函数来打开弹出窗口:

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

关于javascript - 如何在页面加载/使用 Javascript 时自动打开纯 CSS 弹出窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32222048/

相关文章:

css - 使 div 留在父 div 内并留有边距

javascript - HTML5 Canvas 在完成呈现时会发出事件吗?

php - 在 javascript 中执行 php 脚本?

javascript - iframe 中的当前页面重复 : iframe wont load

javascript - 在 contenteditable 中将插入符号放在图像之前/之后

Javascript 示例程序无法运行

javascript - 让我的 javascript 函数 requirejs/amd 友好?

javascript - jquery从左边滑动隐藏菜单无法配置js

javascript - 如何在多个 jQueryUI 日期选择器中遮盖特定日期

html - 我可以在 Windows Phone 8 应用程序中使用 Node.js 吗?