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 相关文章推荐
对 lightbox JS 图片控件进行了一下改造, 使其他支持复杂的图片说明
Mar 20 Javascript
JQuery+CSS提示框实现思路及代码(纯手工打造)
May 07 Javascript
javascript中的取反再取反~~没有意义
Apr 06 Javascript
Javascript实现div层渐隐效果的方法
May 30 Javascript
微信小程序中单位rpx和rem的使用
Dec 06 Javascript
几种tab切换详解
Feb 03 Javascript
vue插件vue-resource的使用笔记(小结)
Aug 04 Javascript
vue toggle做一个点击切换class(实例讲解)
Mar 13 Javascript
vue.js 双层嵌套for遍历的方法详解, 类似php foreach()
Sep 07 Javascript
如何在wxml中直接写js代码(wxs)
Nov 14 Javascript
js判断非127开头的IP地址的实例代码
Jan 05 Javascript
vue中echarts引入中国地图的案例
Jul 28 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
example2.php
2006/10/09 PHP
需要注意的几个PHP漏洞小结
2012/02/05 PHP
php echo, print, print_r, sprintf, var_dump, var_expor的使用区别
2013/06/20 PHP
PHP 返回13位时间戳的实现代码
2016/05/13 PHP
php 中phar包的使用教程详解
2018/10/26 PHP
php写入mysql中文乱码的实例解决方法
2019/09/17 PHP
escape、encodeURI 和 encodeURIComponent 的区别
2009/03/02 Javascript
javascript中的new使用
2010/03/20 Javascript
自己整理的一个javascript日期处理函数
2010/10/16 Javascript
BOM与DOM的区别分析
2010/10/26 Javascript
mailto的使用技巧分享
2012/12/21 Javascript
Javascript图像处理—虚拟边缘介绍及使用方法
2012/12/27 Javascript
基于Jquery+Ajax+Json实现分页显示附效果图
2014/07/30 Javascript
js实现数组转换成json
2015/06/26 Javascript
javascript日期计算实例分析
2015/06/29 Javascript
javascript获取重复次数最多的字符
2015/07/08 Javascript
jQuery fadeOut 异步实例代码详解
2016/08/18 Javascript
NodeJS整合银联网关支付(DEMO)
2016/11/09 NodeJs
Vue实现商品详情页的评价列表功能
2019/09/04 Javascript
Vue实现点击按钮复制文本内容的例子
2019/11/09 Javascript
linux系统使用python监测网络接口获取网络的输入输出
2014/01/15 Python
python图像处理之反色实现方法
2015/05/30 Python
Python3中使用urllib的方法详解(header,代理,超时,认证,异常处理)
2016/09/21 Python
Python之Scrapy爬虫框架安装及使用详解
2017/11/16 Python
Python 操作mysql数据库查询之fetchone(), fetchmany(), fetchall()用法示例
2019/10/17 Python
Python爬虫自动化爬取b站实时弹幕实例方法
2021/01/26 Python
使用CSS3来实现滚动视差效果的教程
2015/08/24 HTML / CSS
公司接待方案
2014/03/08 职场文书
求职自我推荐信
2014/06/25 职场文书
模具设计与制造专业自荐书
2014/07/01 职场文书
归途列车观后感
2015/06/17 职场文书
新西兰:最新留学学习计划书写作指南
2019/07/15 职场文书
Pytorch实现图像识别之数字识别(附详细注释)
2021/05/11 Python
Python还能这么玩之用Python做个小游戏的外挂
2021/06/04 Python
天谕手游15杯全调酒配方和调酒券的获得方式
2022/04/06 其他游戏
Java8利用Stream对列表进行去除重复的方法详解
2022/04/14 Java/Android