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 相关文章推荐
javascript 字符串连接的性能问题(多浏览器)
Nov 18 Javascript
对javascript继承的理解
Oct 11 Javascript
Bootstrap入门教程一Hello Bootstrap初识
Mar 02 Javascript
JQuery 封装 Ajax 常用方法(推荐)
May 21 jQuery
JS中精巧的自动柯里化实现方法
Dec 12 Javascript
vue项目中axios请求网络接口封装的示例代码
Dec 18 Javascript
浅谈vue限制文本框输入数字的正确姿势
Sep 02 Javascript
改变layer confirm弹窗按钮的颜色方法
Sep 12 Javascript
浅谈JS中几种轻松处理'this'指向方式
Sep 16 Javascript
vue axios封装httpjs,接口公用配置拦截操作
Aug 11 Javascript
JavaScript数组排序的六种常见算法总结
Aug 18 Javascript
Express 配置HTML页面访问的实现
Nov 01 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
PHP高自定义性安全验证码代码
2011/11/27 PHP
thinkphp判断访客为手机端或PC端的方法
2014/11/24 PHP
ThinkPHP提交表单时默认自动转义的解决方法
2014/11/25 PHP
JavaScript 数组运用实现代码
2010/04/13 Javascript
JavaScript浏览器选项卡效果
2010/08/25 Javascript
IE6/7/8中Option元素未设value时Select将获取空字符串
2011/04/07 Javascript
jquery offset函数应用实例
2012/11/14 Javascript
如何通过javascript操作web控件的自定义属性
2013/11/25 Javascript
javascript生成随机数的方法
2014/05/16 Javascript
js实现鼠标感应图片展示的方法
2015/02/27 Javascript
纯css实现窗户玻璃雨滴逼真效果
2015/08/23 Javascript
jquery实现的判断倒计时是否结束代码
2016/02/05 Javascript
jQuery电话号码验证实例
2017/01/05 Javascript
vue滚动轴插件better-scroll使用详解
2017/10/17 Javascript
vue项目中引入noVNC远程桌面的方法
2018/03/05 Javascript
Nuxt.js开启SSR渲染的教程详解
2018/11/30 Javascript
[47:02]2018DOTA2亚洲邀请赛3月29日 小组赛B组 VP VS paiN
2018/03/30 DOTA
[05:49]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS 选手采访
2021/03/11 DOTA
利用Python的Twisted框架实现webshell密码扫描器的教程
2015/04/16 Python
TF-IDF与余弦相似性的应用(二) 找出相似文章
2017/12/21 Python
Python基于csv模块实现读取与写入csv数据的方法
2018/01/18 Python
PyQt5主窗口动态加载Widget实例代码
2018/02/07 Python
PyQt5实现无边框窗口的标题拖动和窗口缩放
2018/04/19 Python
python十进制和二进制的转换方法(含浮点数)
2018/07/07 Python
python web框架Flask实现图形验证码及验证码的动态刷新实例
2019/10/14 Python
在pandas中遍历DataFrame行的实现方法
2019/10/23 Python
Python基于paramunittest模块实现excl参数化
2020/04/26 Python
Python实现动态循环输出文字功能
2020/05/07 Python
使用django自带的user做外键的方法
2020/11/30 Python
提供世界各地便宜的机票:Sky-tours
2016/07/21 全球购物
会议邀请函范文
2014/01/09 职场文书
2015年幼儿园教研活动总结
2015/03/25 职场文书
投诉书范文
2015/07/02 职场文书
Python实现GIF动图以及视频卡通化详解
2021/12/06 Python
Java 通过手写分布式雪花SnowFlake生成ID方法详解
2022/04/07 Java/Android
Python开发五子棋小游戏
2022/04/28 Python