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 相关文章推荐
IE 上下滚动展示模仿Marquee机制
Dec 20 Javascript
各情景下元素宽高的获取实现代码
Sep 13 Javascript
jquery+css3打造一款ajax分页插件(自写)
Jun 18 Javascript
使用ngView配合AngularJS应用实现动画效果的方法
Jun 19 Javascript
js文本框走动跑马灯效果代码分享
Aug 25 Javascript
基于WebUploader的文件上传js插件
Aug 19 Javascript
运用js教你轻松制作html音乐播放器
Apr 17 Javascript
利用PM2部署node.js项目的方法教程
May 10 Javascript
使用jQuery.Pin垂直滚动时固定导航
May 24 jQuery
使用ionic(选项卡栏tab) icon(图标) ionic上拉菜单(ActionSheet) 实现通讯录界面切换实例代码
Oct 20 Javascript
VueAwesomeSwiper在VUE中的使用以及遇到的一些问题
Jan 11 Javascript
node.js到底要不要加分号浅析
Jul 11 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 文件缓存的性能测试
2010/04/25 PHP
ThinkPHP关于session的操作方法汇总
2014/07/18 PHP
php中的观察者模式简单实例
2015/01/20 PHP
PHP微信模板消息操作示例
2017/06/29 PHP
“不能执行已释放的Script代码”错误的原因及解决办法
2007/09/09 Javascript
jQuery bind事件使用详解
2011/05/05 Javascript
Javascript Boolean、Nnumber、String 强制类型转换的区别详细介绍
2012/12/13 Javascript
使用js正则控制input标签只允许输入的值
2013/07/29 Javascript
js获取窗口相对于屏幕左边和上边的位置坐标
2014/05/15 Javascript
详解JavaScript中的表单验证
2015/06/16 Javascript
深入分析javascript中的错误处理机制
2016/07/17 Javascript
jquery插件bootstrapValidator表单验证详解
2016/12/15 Javascript
基于zepto.js实现手机相册功能
2017/07/11 Javascript
Vue2.0 多 Tab切换组件的封装实例
2017/07/28 Javascript
使用JavaScript实现node.js中的path.join方法
2018/08/12 Javascript
微信小程序自定义模态弹窗组件详解
2019/12/24 Javascript
详解vue中在父组件点击按钮触发子组件的事件
2020/11/13 Javascript
python实现爬虫统计学校BBS男女比例之数据处理(三)
2015/12/31 Python
Python学习教程之常用的内置函数大全
2017/07/14 Python
Flask和Django框架中自定义模型类的表名、父类相关问题分析
2018/07/19 Python
python的中异常处理机制
2018/08/30 Python
Python爬虫 批量爬取下载抖音视频代码实例
2019/08/16 Python
python 并发编程 非阻塞IO模型原理解析
2019/08/20 Python
django admin 自定义替换change页面模板的方法
2019/08/23 Python
python中count函数简单用法
2020/01/05 Python
python db类用法说明
2020/07/07 Python
Python3.9新特性详解
2020/10/10 Python
python爬虫工具例举说明
2020/11/30 Python
澳大利亚领先的在线葡萄酒零售商:Get Wines Direct
2018/03/27 全球购物
澳大利亚网上买书:Angus & Robertson
2019/07/21 全球购物
杭州联环马网络笔试题面试题
2013/08/04 面试题
解放思想演讲稿
2014/09/11 职场文书
2014年技术部工作总结
2014/12/12 职场文书
求职推荐信范文
2015/03/27 职场文书
2015年护理工作总结范文
2015/04/03 职场文书
学生会宣传部竞选稿
2015/11/21 职场文书