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获取多个tagname的节点数组
Sep 22 Javascript
自己使用jquery写的一个无缝滚动的插件
Apr 30 Javascript
javascript学习笔记(六)数据类型和JSON格式
Oct 08 Javascript
JavaScript代码应该放在HTML代码哪个位置比较好?
Oct 16 Javascript
浅析2种JavaScript继承方式
Dec 04 Javascript
原生JS实现图片轮播与淡入效果的简单实例
Aug 21 Javascript
jQuery实现为LI列表前3行设置样式的方法【2种方法】
Sep 04 Javascript
JavaScript正则替换HTML标签功能示例
Mar 02 Javascript
详解vue-router2.0动态路由获取参数
Jun 14 Javascript
jquery实现左右轮播图效果
Sep 28 jQuery
详解vue-cli 接口代理配置
Dec 13 Javascript
layer插件实现在弹出层中弹出一警告提示并关闭弹出层的方法
Sep 24 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 无法加载mcrypt.dll的解决办法
2013/04/03 PHP
json的键名为数字时的调用方式(示例代码)
2013/11/15 PHP
JsEasy简介 JsEasy是什么?与下载
2007/03/07 Javascript
JavaScript Undefined,Null类型和NaN值区别
2008/10/22 Javascript
IE6中使用position导致页面变形的解决方案(js代码)
2011/01/09 Javascript
jquery移除、绑定、触发元素事件使用示例详解
2014/04/10 Javascript
javascript面向对象特性代码实例
2014/06/12 Javascript
基于jquery编写分页插件
2016/03/07 Javascript
JS中setTimeout的巧妙用法前端函数节流
2016/03/24 Javascript
jQuery简单注册和禁用全局事件的方法
2016/07/25 Javascript
Nodejs进阶:如何将图片转成datauri嵌入到网页中去实例
2016/11/21 NodeJs
vue.js学习之UI组件开发教程
2017/07/03 Javascript
Vue2.0基于vue-cli+webpack同级组件之间的通信教程(推荐)
2017/09/14 Javascript
解决vue.js 数据渲染成功仍报错的问题
2018/08/25 Javascript
react+ant design实现Table的增、删、改的示例代码
2018/12/27 Javascript
详解node和ES6的模块导出与导入
2020/02/19 Javascript
解决echarts数据二次渲染不成功的问题
2020/07/20 Javascript
JS实现audio音频剪裁剪切复制播放与上传(步骤详解)
2020/07/28 Javascript
用Python解析XML的几种常见方法的介绍
2015/04/09 Python
Python线程中对join方法的运用的教程
2015/04/09 Python
Python学习之Anaconda的使用与配置方法
2018/01/04 Python
pandas 将索引值相加的方法
2018/11/15 Python
python中四舍五入的正确打开方式
2021/01/18 Python
MUGLER官方网站:蒂埃里·穆勒香水
2019/11/26 全球购物
戴尔马来西亚官网:Dell Malaysia
2020/05/02 全球购物
大二学期个人自我评价
2014/01/13 职场文书
试用期自我鉴定范文
2014/03/20 职场文书
服装设计师求职信
2014/06/04 职场文书
党支部三会一课计划
2014/09/24 职场文书
写给医生的感谢信
2015/01/22 职场文书
2015年政治教研组工作总结
2015/07/22 职场文书
2016年师德师风学习心得体会
2016/01/12 职场文书
工程移交协议书
2016/03/24 职场文书
2019银行竞聘书
2019/06/21 职场文书
Python中re模块的元字符使用小结
2022/04/07 Python
HTML5页面打开微信小程序功能实现
2022/09/23 HTML / CSS