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 uploadify图片上传插件无法上传的解决方法
Dec 16 Javascript
javascript中普通函数的使用介绍
Dec 19 Javascript
js 时间格式与时间戳的相互转换示例代码
Dec 25 Javascript
Node.js 应用跑得更快 10 个技巧
Apr 03 Javascript
jquery对象和DOM对象的相互转换详解
Oct 18 Javascript
Vue.js常用指令汇总(v-if、v-for等)
Nov 03 Javascript
js仿淘宝评价评分功能
Feb 28 Javascript
jQuery Datatable 多个查询条件自定义提交事件(推荐)
Aug 24 jQuery
Angular2进阶之如何避免Dom误区
Apr 02 Javascript
Vue slot用法(小结)
Oct 22 Javascript
vue实现的双向数据绑定操作示例
Dec 04 Javascript
Vue实现tab导航栏并支持左右滑动功能
Jun 28 Vue.js
五句话帮你轻松搞定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
md5 16位二进制与32位字符串相互转换示例
2013/12/30 PHP
php基于session实现数据库交互的类实例
2015/08/03 PHP
yii2高级应用之自定义组件实现全局使用图片上传功能的方法
2016/10/08 PHP
PHP 断点续传实例详解
2017/11/11 PHP
jQuery ctrl+Enter shift+Enter实现代码
2010/02/07 Javascript
Boostrap模态窗口的学习小结
2016/03/28 Javascript
jQuery实现导航高亮的方法【附demo源码下载】
2016/11/09 Javascript
详解为生产环境编译Angular2应用的方法
2018/12/10 Javascript
微信小程序实现简单跑马灯效果
2020/05/26 Javascript
jQuery事件多次绑定与解绑问题实例分析
2019/02/19 jQuery
微信小程序picker组件关于objectArray数据类型的绑定方法
2019/03/13 Javascript
微信公众号平台接口开发 菜单管理的实现
2019/08/14 Javascript
vue data有值,但是页面{{}} 取不到值的解决
2020/11/09 Javascript
[00:56]2014DOTA2国际邀请赛 DK、iG 赛前探访
2014/07/10 DOTA
Python的批量远程管理和部署工具Fabric用法实例
2015/01/23 Python
Python装饰器入门学习教程(九步学习)
2016/01/28 Python
从头学Python之编写可执行的.py文件
2017/11/28 Python
Python 十六进制整数与ASCii编码字符串相互转换方法
2018/07/09 Python
python使用matplotlib画饼状图
2018/09/25 Python
解决webdriver.Chrome()报错:Message:'chromedriver' executable needs to be in Path
2019/06/12 Python
django做form表单的数据验证过程详解
2019/07/26 Python
python进程间通信Queue工作过程详解
2019/11/01 Python
最新PyCharm 2020.2.3永久激活码(亲测有效)
2020/11/26 Python
HTML5实现页面切换激活的PageVisibility API使用初探
2016/05/13 HTML / CSS
法国时尚童装网站:Melijoe
2016/08/10 全球购物
丝芙兰加拿大官方网站:SEPHORA加拿大
2018/11/20 全球购物
西安当代医院管理研究院笔试题
2015/12/11 面试题
信息管理专业学生自荐信格式
2013/09/22 职场文书
电子专业毕业生自我鉴定
2014/01/22 职场文书
采购部部长岗位职责
2014/02/06 职场文书
少先队学雷锋活动月总结
2014/03/09 职场文书
大学学风建设方案
2014/05/04 职场文书
高职教师先进事迹材料
2014/08/24 职场文书
2014年教师批评与自我批评思想汇报
2014/09/20 职场文书
撤诉申请怎么写
2015/05/19 职场文书
vue 把二维或多维数组转一维数组
2022/04/24 Vue.js