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监听滚动条滚动事件使得某个标签内容始终位于同一位置
Jan 24 Javascript
jQuery学习笔记之 Ajax操作篇(三) - 过程处理
Jun 23 Javascript
jQuery+ajax实现鼠标单击修改内容的思路
Jun 29 Javascript
如何使用Bootstrap的modal组件自定义alert,confirm和modal对话框
Mar 01 Javascript
Javascript iframe交互并兼容各种浏览器的解决方法
Jul 12 Javascript
vue脚手架vue-cli的学习使用教程
Jun 06 Javascript
Node.JS中快速扫描端口并发现局域网内的Web服务器地址(80)
Sep 18 Javascript
浅谈vue中使用图片懒加载vue-lazyload插件详细指南
Oct 23 Javascript
微信小程使用swiper组件实现图片轮播切换显示功能【附源码下载】
Dec 12 Javascript
Vue Router的懒加载路径的解决方法
Jun 21 Javascript
vue-cli 3.x 配置Axios(proxyTable)跨域代理方法
Sep 19 Javascript
vue 中 get / delete 传递数组参数方法
Mar 23 Vue.js
微信网页授权并获取用户信息的方法
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
安装APACHE
2007/01/15 PHP
初识通用数据库操作类――前端easyui-datagrid,form(php)
2015/07/31 PHP
PHP设计模式之工厂模式与单例模式
2016/09/28 PHP
PHP7内核之Reference详解
2019/03/14 PHP
javascript radio 联动效果
2009/03/04 Javascript
对 lightbox JS 图片控件进行了一下改造, 使其他支持复杂的图片说明
2010/03/20 Javascript
javascript 四则运算精度修正函数代码
2010/05/31 Javascript
jQuery获取对象简单实现方法小结
2014/10/30 Javascript
JQuery跳出each循环的方法
2015/04/16 Javascript
JS操作XML实例总结(加载与解析XML文件、字符串)
2015/12/08 Javascript
使用Promise解决多层异步调用的简单学习心得
2016/05/17 Javascript
jQuery删除当前节点元素
2016/12/07 Javascript
JS实现图片高斯模糊切换效果的焦点图实例
2017/01/21 Javascript
使用D3.js制作图表详解
2017/08/13 Javascript
electron中使用bootstrap的示例代码
2018/11/06 Javascript
react写一个select组件的实现代码
2019/04/03 Javascript
[01:02:00]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第三场 1月24日
2021/03/11 DOTA
Django中URLconf和include()的协同工作方法
2015/07/20 Python
python基础知识小结之集合
2015/11/25 Python
win与linux系统中python requests 安装
2016/12/04 Python
PyQT实现多窗口切换
2018/04/20 Python
Python基于lxml模块解析html获取页面内所有叶子节点xpath路径功能示例
2018/05/16 Python
python实现图片筛选程序
2018/10/24 Python
python实现网页自动签到功能
2019/01/21 Python
Python 调用 Outlook 发送邮件过程解析
2019/08/08 Python
python实现梯度下降和逻辑回归
2020/03/24 Python
职业生涯规划设计步骤
2014/01/12 职场文书
《童趣》教学反思
2014/02/19 职场文书
市场营销求职信范文
2014/02/21 职场文书
商场促销活动策划方案
2014/08/18 职场文书
购房公证委托书(2014版)
2014/09/12 职场文书
2014政府领导班子对照检查材料思想汇报(3篇)
2014/09/26 职场文书
优秀教师主要事迹材料
2015/11/04 职场文书
Python实现信息管理系统
2022/06/05 Python
ORACLE中dbms_output.put_line输出问题的解决过程
2022/06/28 Oracle
Win10系统搭建ftp文件服务器详细教程
2022/08/05 Servers