Html5页面点击遮罩层背景关闭遮罩层


Posted in HTML / CSS onNovember 30, 2020

今天团队同事接到一个需求,需求是这样的,点击页面按钮弹出红包弹窗,显示黑色遮罩层,点击遮罩层背景和弹窗关闭按钮要关闭弹窗,于是我就做了一个Demo出来,方便以后下次自己再遇到这种需求,上代码。

html代码

页面上只有一个展示的按钮,一个ID为bg的div作为灰色背景遮罩层使用,ID为popup的div作为红包弹窗,ID为close的div作为关闭按钮。

<body>
    <div class="btn" id="btn">展示</div>
    <div class="bg" id="bg">
        <div class="popup" id="popup">
            <div class="close" id="close">X</div>
        </div>
    </div>
</body>

CSS代码

css代码里面没什么技术难点,唯一要注意的是要给灰色背景的遮罩层一个绝对定位,top和lefe都为0就好了

body {
        position: relative;
    }
    .btn {
        width: 100px;
        height: 40px;
        line-height: 40px;
        text-align: center;
        margin:20px auto 0;
        border: 1px solid #333;
        border-radius: 10px;
    }
    .bg {
        width: 100%;
        height: 100%;
        position: fixed;
        top: 0;
        left: 0;
        background-color: rgba(0, 0, 0, .6);
        display: none;
    }
    .popup {
        width: 260px;
        height: 320px;
        background: red;
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        border-radius: 15px;
     }
    .popup .close {
        width: 30px;
        height: 30px;
        line-height: 30px;
        text-align: center;
        position: absolute;
        top: -40px;
        right: 0px;
        border: 1px solid #999;
        border-radius: 50%;
        color: #999;
    }

JS代码

var btn = document.getElementById('btn');
    var bg = document.getElementById('bg');
    var popup = document.getElementById('popup');
    var closeBtn = document.getElementById('close');
    // 点击展示按钮显示弹窗
    btn.addEventListener('click', ()=> {
        bg.style.display = 'block';
    });
    // 点击阴影遮罩层关闭弹窗
    bg.addEventListener('click', (e)=> {
        bg.style.display = 'none'
    });
    // 阻止冒泡事件,点击弹窗不会执行父元素的点击事件
    popup.addEventListener('click', (e)=> {
        e.stopPropagation();
    });
    // 点击关闭符号关闭弹窗
    closeBtn.addEventListener('click', (e)=> {
        e.stopPropagation();
        bg.style.display = 'none'
    })

到此这篇关于Html5页面点击遮罩层背景关闭遮罩层的文章就介绍到这了,更多相关Html5关闭遮罩层内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章,希望大家以后多多支持三水点靠木!

HTML / CSS 相关文章推荐
Web前端绘制0.5像素的几种方法
Aug 11 HTML / CSS
详解如何使用CSS3中的结构伪类选择器和伪元素选择器
Jan 06 HTML / CSS
CSS3实现div从下往上滑入滑出效果示例
Apr 28 HTML / CSS
HTML5 用动画的表现形式装载图像
Mar 08 HTML / CSS
详解HTML5中div和section以及article的区别
Jul 14 HTML / CSS
【HTML5】Canvas绘制简单图片教程
May 13 HTML / CSS
HTML5在线预览PDF的示例代码
Sep 14 HTML / CSS
浅谈Html5多线程开发之WebWorkers
May 02 HTML / CSS
详解通过focusout事件解决IOS键盘收起时界面不归位的问题
Jul 18 HTML / CSS
html5 移动端视频video的android兼容(去除播放控件、全屏)
Mar 26 HTML / CSS
总结html5自定义属性有哪些
Apr 01 HTML / CSS
浅析CSS在DevTools 中架构演变
Oct 05 HTML / CSS
使用HTML5加载音频和视频的实现代码
Nov 30 #HTML / CSS
Canvas实现放大镜效果完整案例分析(附代码)
Nov 26 #HTML / CSS
HTML5在手机端实现视频全屏展示方法
Nov 23 #HTML / CSS
关于HTML5+ API plusready的兼容问题
Nov 20 #HTML / CSS
Html5原生拖拽相关事件简介以及基础实现
Nov 19 #HTML / CSS
Canvas获取视频第一帧缩略图的实现
Nov 11 #HTML / CSS
使用layui框架实现点击左侧导航切换右侧内容且右侧选项卡跟随变化的效果
Nov 10 #HTML / CSS
You might like
php生成xml简单实例代码
2009/12/16 PHP
关于URL最大长度限制的相关资料查证
2014/12/23 PHP
数组任意位置插入元素,删除特定元素的实例
2017/03/02 PHP
PHP7多线程搭建教程
2017/04/21 PHP
List the Stored Procedures in a SQL Server database
2007/06/20 Javascript
JS运行耗时操作的延时显示方法
2010/11/19 Javascript
浅析JavaScript中的常用算法与函数
2013/11/21 Javascript
多种方法实现load加载完成后把图片一次性显示出来
2014/02/19 Javascript
JavaScript对象之深度克隆介绍
2014/12/08 Javascript
web前端开发JQuery常用实例代码片段(50个)
2015/08/28 Javascript
手机端js和html5刮刮卡效果
2020/09/29 Javascript
js 数据存储和DOM编程
2017/02/09 Javascript
jQuery实现大图轮播
2017/02/13 Javascript
js实现文字无缝向上滚动
2017/02/16 Javascript
Angular中使用$watch监听object属性值的变化(详解)
2017/04/24 Javascript
vue项目上传Github预览的实现示例
2018/11/06 Javascript
JavaScript简单实现动态改变HTML内容的方法示例
2018/12/25 Javascript
Vue 实现复制功能,不需要任何结构内容直接复制方式
2019/11/09 Javascript
微信小程序返回上一页传参并刷新过程解析
2019/12/13 Javascript
手动实现把python项目发布为exe可执行程序过程分享
2014/10/23 Python
Python中import机制详解
2017/11/14 Python
基于python历史天气采集的分析
2019/02/14 Python
python3.x+pyqt5实现主窗口状态栏里(嵌入)显示进度条功能
2019/07/04 Python
深入浅析Python科学计算库Scipy及安装步骤
2019/10/12 Python
解决flask接口返回的内容中文乱码的问题
2020/04/03 Python
美国领先的个性化礼品商城:Personalization Mall
2019/07/27 全球购物
Java面试题及答案
2012/09/08 面试题
《谁的本领大》教后反思
2014/04/25 职场文书
企业公益活动策划方案
2014/08/24 职场文书
通知格式
2015/04/27 职场文书
电影圆明园观后感
2015/06/03 职场文书
死亡诗社观后感
2015/06/05 职场文书
2015年乡镇食品安全工作总结
2015/10/22 职场文书
怎样写好工作计划
2019/04/10 职场文书
SQL写法--行行比较
2021/08/23 SQL Server
vue 给数组添加新对象并赋值
2022/04/20 Vue.js