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 学习笔记二 字符串拼接
Mar 28 Javascript
基于jquery 的一个progressbar widge
Oct 29 Javascript
javascript 弹出窗口中是否显示地址栏的实现代码
Apr 14 Javascript
Jquery 的扩展方法总结
Oct 01 Javascript
关于jQuery参考实例2.0 用jQuery选择元素
Apr 07 Javascript
javascript中的作用域和上下文使用简要概述
Dec 05 Javascript
js Object2String方便查看js对象内容
Nov 24 Javascript
jquery ui resize 中border-box的bug修正
Apr 26 Javascript
Ajax和Comet技术总结
Feb 19 Javascript
微信小程序 swiper组件构建轮播图的实例
Sep 20 Javascript
Javascript刷新页面的实例
Sep 23 Javascript
vxe-table vue table 表格组件功能
May 26 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
php的ajax框架xajax入门与试用介绍
2010/12/19 PHP
PHP中exec与system用法区别分析
2014/09/22 PHP
php格式化金额函数分享
2015/02/02 PHP
php版微信开发Token验证失败或请求URL超时问题的解决方法
2016/09/23 PHP
php rsa 加密,解密,签名,验签详解
2016/12/06 PHP
Yii框架参数化查询中IN查询只能查询一个的解决方法
2017/05/20 PHP
实例讲解PHP表单
2020/06/10 PHP
jquery 最简单易用的表单验证插件
2010/02/27 Javascript
21个值得收藏的Javascript技巧
2014/02/04 Javascript
JS获取URL中参数值(QueryString)的4种方法分享
2014/04/12 Javascript
微信小程序 简单教程实例详解
2017/01/13 Javascript
详解vue模拟加载更多功能(数据追加)
2017/06/23 Javascript
vue中的event bus非父子组件通信解析
2017/10/27 Javascript
vue给input file绑定函数获取当前上传的对象完美实现方法
2017/12/15 Javascript
基于jquery实现的tab选项卡功能示例【附源码下载】
2019/06/10 jQuery
vue解决跨域问题(推荐)
2020/11/10 Javascript
python中正则表达式 re.findall 用法
2018/10/23 Python
11个Python3字典内置方法大全与示例汇总
2019/05/13 Python
Python下opencv图像阈值处理的使用笔记
2019/08/04 Python
python实现人像动漫化的示例代码
2020/05/17 Python
Python 添加文件注释和函数注释操作
2020/08/09 Python
WoolOvers爱尔兰:羊绒、羊毛和棉针织品
2017/01/04 全球购物
精灵市场:Pixie Market
2019/06/18 全球购物
在对linux系统分区进行格式化时需要对磁盘簇(或i节点密度)的大小进行选择,请说明选择的原则
2012/01/13 面试题
广州足迹信息技术有限公司Java软件工程师试题
2014/02/15 面试题
土木建筑学生自我评价
2014/01/14 职场文书
市场营销求职信范文
2014/02/21 职场文书
《望庐山瀑布》教学反思
2014/04/22 职场文书
机械设备与数控技术专业求职信
2014/08/10 职场文书
统计学教授推荐信
2014/09/18 职场文书
党员个人查摆剖析材料
2014/10/16 职场文书
2014年为民办实事工作总结
2014/12/20 职场文书
2015年考研复习计划
2015/01/19 职场文书
2015年重阳节慰问信
2015/03/23 职场文书
php去除数组中为0的元素的实例分析
2021/11/17 PHP
TV动画《政宗君的复仇》第二季制作决定PV公布
2022/04/02 日漫