JS使用遮罩实现点击某区域以外时弹窗的弹出与关闭功能示例


Posted in Javascript onJuly 31, 2018

本文实例讲述了JS使用遮罩实现点击某区域以外时弹窗的弹出与关闭功能。分享给大家供大家参考,具体如下:

HTML部分:

<div id="div">点击除开div的区域可以弹出弹窗</div>
<div id="cover"></div>
<div id="box">点击除开div和弹窗的区域可以关闭弹窗</div>

CSS部分:

#div{
  /*设置z-index属性必须设置position:relative或absolute*/ 
  position:relative;
  /*设置div位于遮罩的上方*/ 
  z-index:2;
  width:300px;
  height:200px;
  border:1px solid grey;
}
#cover{
  position:fixed;
  width:100%;
  height:100%;
  left:0;
  top:0;
  /*设置遮罩位于div的下方*/ 
  z-index:1;
}
#box{
  border:1px solid grey;
  /*当弹窗显示时,屏幕滚动时,弹窗始终保持位置固定在屏幕正中,不随屏幕滚动而变化位置*/
  position:fixed;
  width:400px;
  height:300px;
  left:50%;
  top:50%;
  /*配合left:50%和top:50%属性使得浮出层的中心默认在屏幕正中,margin-top为height的一半,margin-left为width的一半*/
  margin:-150px 0 0 -200px; 
  /*设置弹窗位于遮罩的上方*/ 
  z-index:2;
  /*开始时隐藏弹窗*/
  display:none;
}

JavaScript部分:

document.getElementById("cover").onclick = function() { 
  if (document.getElementById("box").style.display == "block") {
    document.getElementById("box").style.display = "none";
    document.getElementById("cover").style.background = "white";
  }
  else {
    document.getElementById("box").style.display = "block";
    document.getElementById("cover").style.background = "#aaa";
  }
}

感兴趣的朋友可以使用在线HTML/CSS/JavaScript前端代码调试运行工具:http://tools.3water.com/code/WebCodeRun测试一下运行效果。

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
JavaScript去除空格的几种方法
Oct 03 Javascript
类似框架的js代码
Nov 09 Javascript
js模拟滚动条(横向竖向)
Feb 22 Javascript
JavaScript中的typeof操作符用法实例
Apr 05 Javascript
一个小例子解释如何来阻止Jquery事件冒泡
Jul 17 Javascript
JavaScript中的函数声明和函数表达式区别浅析
Mar 27 Javascript
JavaScript手机振动API
Jun 11 Javascript
setTimeout函数的神奇使用
Feb 26 Javascript
对vue.js中this.$emit的深入理解
Feb 23 Javascript
vue 注册组件的使用详解
May 05 Javascript
bootstrap 路径导航 分页 进度条的实例代码
Aug 06 Javascript
JavaScript动画实例之粒子文本的实现方法详解
Jul 28 Javascript
微信网页授权并获取用户信息的方法
Jul 30 #Javascript
axios简单实现小程序延时loading指示
Jul 30 #Javascript
JS实现HTML页面中动态显示当前时间完整示例
Jul 30 #Javascript
JS实现DOM节点插入操作之子节点与兄弟节点插入操作示例
Jul 30 #Javascript
js+html5实现手机九宫格密码解锁功能
Jul 30 #Javascript
vscode中vue-cli项目es-lint的配置方法
Jul 30 #Javascript
JavaScript树的深度优先遍历和广度优先遍历算法示例
Jul 30 #Javascript
You might like
中国第一家无线电行
2021/03/01 无线电
初学PHP的朋友 经常问的一些问题。不断更新
2011/08/11 PHP
phpcms模块开发之swfupload的使用介绍
2013/04/28 PHP
在WordPress中获取数据库字段内容和添加主题设置菜单
2016/01/11 PHP
kindeditor 加入七牛云上传的实例讲解
2017/11/12 PHP
ExtJs grid行 右键菜单的两种方法
2010/06/19 Javascript
ASP.NET中基于JQUERY的高性能的TreeView补充
2011/02/23 Javascript
利用javascript解决图片缩放及其优化的代码
2012/05/23 Javascript
根据经纬度计算地球上两点之间的距离js实现代码
2013/03/05 Javascript
JS实现浏览器状态栏显示时间的方法
2015/10/27 Javascript
谈谈javascript中使用连等赋值操作带来的问题
2015/11/26 Javascript
Javascript实现检测客户端类型代码封包
2015/12/03 Javascript
Backbone.js框架中Model与Collection的使用实例
2016/05/07 Javascript
JS实现六位字符密码输入器功能
2016/08/19 Javascript
JS日期对象简单操作(获取当前年份、星期、时间)
2016/10/26 Javascript
Javascript 获取鼠标当前的位置实现方法
2016/10/27 Javascript
js+html制作简单日历的方法
2017/06/27 Javascript
vue2+el-menu实现路由跳转及当前项的设置方法实例
2017/11/07 Javascript
Vue的H5页面唤起支付宝支付功能
2019/04/18 Javascript
微信小程序云开发之使用云函数
2019/05/17 Javascript
js贪心算法 钱币找零问题代码实例
2019/09/11 Javascript
JavaScript 实现HTML DOM增删改查操作的常见方法详解
2020/01/04 Javascript
js实现圆形显示鼠标单击位置
2020/02/11 Javascript
[01:03:59]2018DOTA2亚洲邀请赛3月30日 小组赛B组VGJ.T VS Secret
2018/03/31 DOTA
Python常见工厂函数用法示例
2018/03/21 Python
numpy.linspace 生成等差数组的方法
2018/07/02 Python
python selenium自动上传有赞单号的操作方法
2018/07/05 Python
Python3 无重复字符的最长子串的实现
2019/10/08 Python
flask框架json数据的拿取和返回操作示例
2019/11/28 Python
利用PyTorch实现VGG16教程
2020/06/24 Python
网络艺术零售业的先驱者:artrepublic
2017/09/26 全球购物
英国山地公路自行车商店:Tweeks Cycles
2018/03/16 全球购物
网络安全类面试题
2015/08/01 面试题
大学生村官事迹材料
2014/01/21 职场文书
个人作风建设心得体会
2014/10/22 职场文书
党的群众路线教育实践活动总结大会主持词
2014/10/30 职场文书