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跨域问题
Apr 17 Javascript
Jquery注册事件实现方法
May 18 Javascript
使用AngularJS对路由进行安全性处理的方法
Jun 18 Javascript
javascript实现的多个层切换效果通用函数实例
Jul 06 Javascript
JS判断是否在微信浏览器打开的简单实例(推荐)
Aug 24 Javascript
JS实战篇之收缩菜单表单布局
Dec 10 Javascript
使用DeviceOne实现微信小程序功能
Dec 29 Javascript
简单实现jQuery多选框功能
Jan 09 Javascript
jQuery实现贪吃蛇小游戏(附源码下载)
Mar 04 Javascript
jQuery实现ajax回调函数带入参数的方法示例
Jun 26 jQuery
Vue的路由及路由钩子函数的实现
Jul 02 Javascript
微信小程序清空输入框信息与实现屏幕往上滚动的示例代码
Jun 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
PHP实用函数分享之去除多余的0
2015/02/06 PHP
win7系统配置php+Apache+mysql环境的方法
2015/08/21 PHP
phpinfo() 中 Local Value(局部变量)Master Value(主变量) 的区别
2016/02/03 PHP
PHP环境搭建(php+Apache+mysql)
2016/11/14 PHP
在laravel中使用Symfony的Crawler组件分析HTML
2017/06/19 PHP
自动生成文章摘要的代码[JavaScript 版本]
2007/03/20 Javascript
让ie6也支持websocket采用flash封装实现
2013/02/18 Javascript
JavaScript AJAX之惰性载入函数
2014/08/27 Javascript
BAT及各大互联网公司2014前端笔试面试题--JavaScript篇
2014/10/29 Javascript
Jquery注册事件实现方法
2015/05/18 Javascript
jQuery动画效果相关方法实例分析
2015/12/31 Javascript
理解javascript对象继承
2016/04/17 Javascript
jQuery实现的无限级下拉菜单功能示例
2016/09/12 Javascript
JS实现给对象动态添加属性的方法
2017/01/05 Javascript
NodeJS测试框架mocha入门教程
2017/03/28 NodeJs
Angular 4 依赖注入学习教程之FactoryProvider的使用(四)
2017/06/04 Javascript
webpack 单独打包指定JS文件的方法
2018/02/22 Javascript
JavaScript数据结构与算法之二叉树添加/删除节点操作示例
2019/03/01 Javascript
[01:27:44]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster BO3 第一场 1月24日
2021/03/11 DOTA
用Python代码来解图片迷宫的方法整理
2015/04/02 Python
Python使用面向对象方式创建线程实现12306售票系统
2015/12/24 Python
利用Python在一个文件的头部插入数据的实例
2018/05/02 Python
selenium在执行phantomjs的API并获取执行结果的方法
2018/12/17 Python
Python类和对象的定义与实际应用案例分析
2018/12/27 Python
对python实现模板生成脚本的方法详解
2019/01/30 Python
python 获取毫秒数,计算调用时长的方法
2019/02/20 Python
英国计算机商店:Technextday
2019/12/28 全球购物
strlen的几种不同实现方法
2013/05/31 面试题
教师个人鉴定材料
2014/02/08 职场文书
任命书怎么写
2014/06/04 职场文书
公司感恩节活动策划书
2014/10/11 职场文书
小学老师对学生的评语
2014/12/29 职场文书
高三毕业感言
2015/07/30 职场文书
《全神贯注》教学反思
2016/02/22 职场文书
MySQL 数据类型选择原则
2021/05/27 MySQL
动画《平凡职业成就世界最强》宣布制作OVA
2022/04/01 日漫