JavaScript实现弹出窗口效果


Posted in Javascript onDecember 09, 2020

本文实例为大家分享了JavaScript实现弹出窗口的具体代码,供大家参考,具体内容如下

思路

1、总体使用两个div,一个作为底层展示,一个做为弹出窗口;
2、两个窗口独立进行CSS设计,通过display属性进行设置现实与隐藏,此处建议使用display属性而不是visibility属性,visibility:hidden可以隐藏某个元素,但隐藏的元素仍需占用与未隐藏之前一样的空间,影响布局;
3、在js内设计两个onclick事件,分别指定函数,分别为开启弹窗和关闭弹窗。

一、设置两个div

<html>
<title>弹出窗口</title>
<head>
 <meta charset="UTF-8">
</head>
<body>
 // 底层div
 <div id="popLayer">
 </div>
 // 弹出层div
 <div id="popDiv">
 </div>
</body>
</html>

二、对两个div进行独立CSS设置,弹出窗口display设为none

<html>
<title>弹出窗口</title>
<head>
 <meta charset="UTF-8">
 <style type="text/css">
 body{
 background-color: cyan;
 }
 #popDiv{
 display: none;
 background-color: crimson;
 z-index: 11;
 width: 600px;
 height: 600px;
 position:fixed;
 top:0;
 right:0;
 left:0;
 bottom:0;
 margin:auto;
 }
 </style>
</head>
<body>
 // 底层div
 <div id="popLayer">
 <button onclick="">弹窗</button>
 </div>
 
 // 弹出层div
 <div id="popDiv">
 <div class="close">
 // 关闭按钮超链接
 <a href="" onclick="">关闭</a>
 </div>
 <p>此处为弹出窗口</p>
 </div>
</body>
</html>

三、定义并设置弹出按钮和关闭窗口函数

<script type="text/javascript">
 function popDiv(){
  // 获取div元素
  var popBox = document.getElementById("popDiv");
  var popLayer = document.getElementById("popLayer");

  // 控制两个div的显示与隐藏
  popBox.style.display = "block";
  popLayer.style.display = "block";
 }

 function closePop(){
  // 获取弹出窗口元素
  let popDiv = document.getElementById("popDiv");

  popDiv.style.display = "none";
 }
</script>

四、将函数设置到onclick事件中

<button onclick="popDiv();">弹窗</button>
<a href="javascript:void(0)" onclick="closePop()">关闭</a>

五、设置关闭链接CSS和pop界面的其余CSS

<style type="text/css">
 /* 关闭链接样式 */
 #popDiv .close a {
  text-decoration: none;
  color: #2D2C3B;
 }
 /* 弹出界面的关闭链接 */
 #popDiv .close{
  text-align: right;
  margin-right: 5px;
  background-color: #F8F8F8;
 }
 #popDiv p{
  text-align: center;
  font-size: 25px;
  font-weight: bold;
 }
</style>

六、整体代码

<html>
<title>弹出窗口</title>
<head>
 <meta charset="UTF-8">
 <script type="text/javascript">
 function popDiv(){
  // 获取div元素
  var popBox = document.getElementById("popDiv");
  var popLayer = document.getElementById("popLayer");

  // 控制两个div的显示与隐藏
  popBox.style.display = "block";
  popLayer.style.display = "block";
 }

 function closePop(){
  // 获取弹出窗口元素
  let popDiv = document.getElementById("popDiv");

  popDiv.style.display = "none";
 }
 </script>
 <style type="text/css">
 body{
  background-color: cyan;
 }
 #popDiv{
  display: none;
  background-color: crimson;
  z-index: 11;
  width: 600px;
  height: 600px;
  position:fixed;
  top:0;
  right:0;
  left:0;
  bottom:0;
  margin:auto;
 }
 /* 关闭按钮样式 */
 #popDiv .close a {
  text-decoration: none;
  color: #2D2C3B;
 }
 /* 弹出界面的关闭按钮 */
 #popDiv .close{
  text-align: right;
  margin-right: 5px;
  background-color: #F8F8F8;
 }
 #popDiv p{
  text-align: center;
  font-size: 25px;
  font-weight: bold;
 }
 </style>
</head>
<body>
 <div id="popLayer">
 <button onclick="popDiv();">弹窗</button>
 </div>

 <div id="popDiv">
 <div class="close">
  <a href="javascript:void(0)" onclick="closePop()">关闭</a>
 </div>
  <p>此处为弹出窗口</p>
 </div>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Jquery实现页面加载时弹出对话框代码
Apr 19 Javascript
JavaScript中访问节点对象的方法有哪些如何使用
Sep 24 Javascript
提取jquery的ready()方法单独使用示例
Mar 25 Javascript
浅谈JavaScript事件绑定的常用方法及其优缺点分析
Nov 01 Javascript
JavaScript实现的CRC32函数示例
Nov 23 Javascript
JavaScript字符串对象(string)基本用法示例
Jan 18 Javascript
JavaScript生成指定范围的时间列表
Mar 19 Javascript
VuePress 静态网站生成方法步骤
Feb 14 Javascript
vue+element UI实现树形表格带复选框的示例代码
Apr 16 Javascript
详解Node.JS模块 process
Aug 31 Javascript
echarts浮动显示单位的实现方法示例
Dec 04 Javascript
JS前端使用Canvas快速实现手势解锁特效
Sep 23 Javascript
五句话帮你轻松搞定js原型链
Dec 09 #Javascript
JS常用跨域方法实现原理解析
Dec 09 #Javascript
video.js添加自定义组件的方法
Dec 09 #Javascript
手把手教你如何编译打包video.js
Dec 09 #Javascript
ES6 十大特性简介
Dec 09 #Javascript
Js实现粘贴上传图片的原理及示例
Dec 09 #Javascript
再也不怕 JavaScript 报错了,怎么看怎么处理都在这儿
Dec 09 #Javascript
You might like
绿山咖啡和蓝山咖啡
2021/03/04 新手入门
php中让上传的文件大小在上传前就受限制的两种解决方法
2013/06/24 PHP
使用php实现快钱支付功能(涉及到接口)
2013/07/01 PHP
php post大量数据时发现数据丢失问题解决方法
2015/06/20 PHP
关于Laravel Route重定向的一个注意点
2017/01/16 PHP
PHP基于关联数组20行代码搞定约瑟夫问题示例
2017/11/07 PHP
[JS]点出统计器
2020/10/11 Javascript
简单的无缝滚动程序-仅几行代码
2007/05/08 Javascript
JQuery 无废话系列教程(二) jquery实战篇上
2009/06/23 Javascript
浅谈Javascript面向对象编程
2011/11/15 Javascript
js如何判断不同系统的浏览器类型
2013/10/28 Javascript
node.js中的fs.fstat方法使用说明
2014/12/15 Javascript
详解JavaScript中的表单验证
2015/06/16 Javascript
JS、jQuery中select的用法详解
2016/04/21 Javascript
ReactJs实现树形结构的数据显示的组件的示例
2017/08/18 Javascript
vue中SPA单页面应用程序详解
2017/11/07 Javascript
vue代码分割的实现(codesplit)
2018/11/13 Javascript
ES7之Async/await的使用详解
2019/03/28 Javascript
关于vue2强制刷新,解决页面不会重新渲染的问题
2019/10/29 Javascript
jQuery实现的图片点击放大缩小功能案例
2020/01/02 jQuery
vscode 配置vue+vetur+eslint+prettier自动格式化功能
2020/03/23 Javascript
python简单实现计算过期时间的方法
2015/06/09 Python
Python实现的弹球小游戏示例
2017/08/01 Python
Python中eval带来的潜在风险代码分析
2017/12/11 Python
对python 多线程中的守护线程与join的用法详解
2019/02/18 Python
Python中Flask-RESTful编写API接口(小白入门)
2019/12/11 Python
python3列表删除大量重复元素remove()方法的问题详解
2021/01/04 Python
CSS3实现大小不一的粒子旋转加载动画
2016/04/21 HTML / CSS
人事行政主管岗位职责
2013/12/22 职场文书
珍珠奶茶店创业计划书
2014/01/11 职场文书
信息技术专业大学生职业生涯规划书
2014/01/24 职场文书
护士试用期自我鉴定
2014/02/08 职场文书
银行党员批评与自我批评
2014/10/15 职场文书
初中毕业生自我评价
2015/03/02 职场文书
幼儿园迎新生欢迎词
2015/09/30 职场文书
党校团干班培训心得体会
2016/01/06 职场文书