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 相关文章推荐
根据分辩率调用不同的CSS.
Jan 08 Javascript
JavaScript入门教程(7) History历史对象
Jan 31 Javascript
jQuery操作checkbox选择(list/table)
Apr 07 Javascript
JavaScript日期时间格式化函数分享
May 05 Javascript
js 加密压缩出现bug解决方案
Nov 25 Javascript
javascript实现获取字符串hash值
May 10 Javascript
javascript创建动态表单的方法
Jul 25 Javascript
JS+CSS实现表格高亮的方法
Aug 05 Javascript
JS 数字转换为大写金额的简单实例
Aug 04 Javascript
js中Number数字数值运算后值不对的解决方法
Feb 28 Javascript
浅谈webpack-dev-server的配置和使用
May 17 Javascript
vue mounted 调用两次的完美解决办法
Oct 29 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 8小时时间差的解决方法小结
2009/12/22 PHP
PHP实现事件机制的方法
2015/07/10 PHP
PHP标准类(stdclass)用法示例
2016/09/28 PHP
PHP实现的方程求解示例分析
2016/11/11 PHP
ThinkPHP整合datatables实现服务端分页的示例代码
2018/02/10 PHP
JS+ACTIVEX实现网页选择本地目录路径对话框
2013/03/18 Javascript
手机号码,密码正则验证
2014/09/04 Javascript
纯javascript实现图片延时加载方法
2015/08/21 Javascript
js实现可折叠展开的手风琴菜单效果
2015/09/07 Javascript
创建自己的jquery表格插件
2015/11/25 Javascript
Vuex和前端缓存的整合策略详解
2017/05/09 Javascript
Node学习记录之cluster模块
2017/05/31 Javascript
详解使用Typescript开发node.js项目(简单的环境配置)
2017/10/09 Javascript
实战node静态文件服务器的示例代码
2018/03/08 Javascript
微信小程序签到功能
2018/10/31 Javascript
Vue通过getAction的finally来最大程度避免影响主数据呈现问题
2020/04/24 Javascript
[05:01]3.19DOTA2发布会 我们都是刀塔人
2014/03/25 DOTA
python合并文本文件示例
2014/02/07 Python
Python Queue模块详解
2014/11/30 Python
Python的类实例属性访问规则探讨
2015/01/30 Python
Python使用cx_Oracle模块将oracle中数据导出到csv文件的方法
2015/05/16 Python
tensorflow 利用expand_dims和squeeze扩展和压缩tensor维度方式
2020/02/07 Python
python实现ping命令小程序
2020/12/28 Python
解决selenium+Headless Chrome实现不弹出浏览器自动化登录的问题
2021/01/09 Python
Hoka One One法国官网:美国专业跑鞋品牌
2018/12/29 全球购物
求职推荐信
2013/10/28 职场文书
师范学院教师自荐书
2014/01/31 职场文书
毕业生写求职信的要点
2014/03/04 职场文书
护士毕业实习感言
2014/03/05 职场文书
员工入职担保书范文
2014/04/01 职场文书
爱护公共设施的标语
2014/06/24 职场文书
党员自我评议个人对照检查材料
2014/09/16 职场文书
2015年音乐教学工作总结
2015/07/22 职场文书
暑假打工感想
2015/08/07 职场文书
python 如何做一个识别率百分百的OCR
2021/05/29 Python
基于Python实现西西成语接龙小助手
2022/08/05 Golang