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 相关文章推荐
js最简单的拖拽效果实现代码
Sep 24 Javascript
javascript 隔行换色函数代码
Oct 24 Javascript
jQuery 获取浏览器所在的IP地址的小例子
Nov 08 Javascript
js中的onchange和onpropertychange (onchange无效的解决方法)
Mar 08 Javascript
JavaScript常用基础知识强化学习
Dec 09 Javascript
vue分页组件table-pagebar使用实例解析
Nov 15 Javascript
AngularJs concepts详解及示例代码
Sep 01 Javascript
支持移动端原生js轮播图
Feb 16 Javascript
jQuery遍历节点方法汇总(推荐)
May 13 jQuery
详解vue中computed 和 watch的异同
Jun 30 Javascript
bootstrap实现嵌套模态框的实例代码
Jan 10 Javascript
微信小程序实现锚点跳转
Nov 23 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 mysql索引问题
2008/06/07 PHP
PHP后台微信支付和支付宝支付开发
2017/04/28 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
2018/06/13 PHP
PHP常量DIRECTORY_SEPARATOR原理及用法解析
2020/11/10 PHP
javascript的trim,ltrim,rtrim自定义函数
2008/09/21 Javascript
JS getStyle获取最终样式函数代码
2010/04/01 Javascript
javascript面向对象入门基础详细介绍
2012/09/05 Javascript
script的async属性以非阻塞的模式加载脚本
2013/01/15 Javascript
JavaScript获取和设置CheckBox状态的简单方法
2013/07/05 Javascript
nodejs中操作mysql数据库示例
2014/12/20 NodeJs
极力推荐一款小巧玲珑的可视化编辑器bootstrap-wysiwyg
2016/05/27 Javascript
es7学习教程之fetch解决异步嵌套问题的方法示例
2017/07/21 Javascript
详解vue的diff算法原理
2018/05/20 Javascript
jQuery AJAX 方法success()后台传来的4种数据详解
2018/08/08 jQuery
详解vuex数据传输的两种方式及this.$store undefined的解决办法
2019/08/26 Javascript
nodejs环境使用Typeorm连接查询Oracle数据
2019/12/05 NodeJs
如何使用webpack打包一个库library的方法步骤
2019/12/18 Javascript
Python实现把utf-8格式的文件转换成gbk格式的文件
2015/01/22 Python
使用Python的Flask框架表单插件Flask-WTF实现Web登录验证
2016/07/12 Python
Django REST framework视图的用法
2019/01/16 Python
Flask框架钩子函数功能与用法分析
2019/08/02 Python
pytorch 获取层权重,对特定层注入hook, 提取中间层输出的方法
2019/08/17 Python
Python图像处理库PIL的ImageDraw模块介绍详解
2020/02/26 Python
Python中实现输入一个整数的案例
2020/05/03 Python
导致python中import错误的原因是什么
2020/07/01 Python
python3实现名片管理系统(控制台版)
2020/11/29 Python
详解Python中openpyxl模块基本用法
2021/02/23 Python
CSS3 transforms应用于背景图像的解决方法
2019/04/16 HTML / CSS
Parts Express:音频、视频和扬声器的第一来源
2017/04/25 全球购物
锐步香港官方网上商店:Reebok香港
2020/11/05 全球购物
教师演讲稿范文
2014/01/08 职场文书
综合实践活动总结
2014/05/05 职场文书
学校学雷锋活动总结
2014/06/26 职场文书
2015年幼儿园元旦游艺活动策划书
2014/12/09 职场文书
大学生求职自荐信
2015/03/24 职场文书
Go本地测试解耦任务拆解及沟通详解Go本地测试的思路沟通的重要性总结
2022/06/21 Golang