CSS遮罩层实现思路:
遮罩层的影藏方式一般有display:none、visibility:none、opacity: 0。
遮罩层从无到有的出现效果一般是opacity值从0~1,结合transition属性使用。
遮罩层一般位于页面Z轴方向前面,如果遮罩层只设置opacity,由于其z-index靠前,会导致触发不到打开按钮,处理这个问题的处理方式有两种:
1、设置按钮的z-index(5),在遮罩层出现后设置的z-index(如这里的55)要是最高。
2、遮罩层结合visibility使用,即使打开按钮不设置z-index值,在点击按钮时,是触发不到遮罩层的,可通过脚本验证。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1"/>
<style>
* {
padding: 0;
margin: 0;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
line-height: 1.5;
-webkit-tap-highlight-color: transparent;
} /*页面按照750px的设计稿,适应vw/vh布局,100vw / 750px * 100px , 1rem = 100px*/
html {
font-size: 13.333333333333333333333333333333vw;
} body {
position: relative;
width: 100%;
height: 100%;
min-width: 320px;
max-width: 540px;
margin: 0 auto;
} @media screen and (max-width: 320px) {
html {font-size: 50px}
}
@media screen and (min-width: 540px) {
html {font-size: 70px;}
}
a { text-decoration: none;} .openMask {
position: relative;
display: block;
z-index: 5;
width: 3rem;
height: .9rem;
margin: 0.6rem;
color: #999;
font-size: 0.5rem;
font-weight: 800;
text-align: center;
line-height: .9rem;
border: 2px solid;
}
/*伪元素的真正宽高是openMask的宽高减去border值(4px),也就是content box大小,但定位开始是padding box*/
.openMask:after {
position: absolute;
z-index: -2;
content: '';
top: 0;
left: 50%;
width: 0;
height: 100%;
transition: all .1s;
transform: translateX(-50%);
}
.openMask:active {color: #fff}
.openMask:active:after {
width: 100%;
background: #999;
} .maskLayer {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
opacity: 0;
visibility: hidden;
background: rgba(0,0,0,.3);
transition: all .3s;
} .content {
position: absolute;
bottom: -8rem;
width: 100%;
height: 8rem;
background: #fff;
border-radius: .4rem .4rem 0 0;
transition: all .6s;
}
.maskLayer:target {
z-index: 55;
opacity: 1;
visibility: visible;
} .maskLayer:target .content {
bottom: 0;
} .closeMask {
position: absolute;
top: 3vw;
right: 6vw;
font-size: 6vw;
} .closeMaskLayer {
position: absolute;
z-index: -4;
display: block;
width: 100%;
height: 100%;
}
</style>
<title>target实现弹框</title>
<script src="jquery-3.1.0.min.js"></script>
</head>
<body>
<a href="#maskLayer" class="openMask">OPEN</a>
<div href="#" id="maskLayer" class="maskLayer">
<a href="#" class="closeMaskLayer"></a><!--用于遮罩关闭-->
<div class="content">
<a href="#" class="closeMask">✕</a>
</div>
</div> <script>
$("#maskLayer").click(function() {
console.log("visibility");
});
</script>
</body>
</html>

回过头再做再看一些内容时,发现曾经的疑问豁然开朗,不是你不行,而是你要矢志不渝地前行才能到达你需要的高度。

css实现弹框的更多相关文章

  1. css实现弹框垂直居中

    原文链接:https://blog.csdn.net/sunny327/article/details/47419949/ <!DOCTYPE html><html> < ...

  2. 参考bootstrap中的popover.js的css画消息弹框

    前段时间小颖的大学同学给小颖发了一张截图,图片类似下面这张图: 小颖当时大概的给她说了下,其实小颖也不知道上面那个三角形怎么画嘻嘻,给她说了DOM结构,具体的css让她自己百度,今天小颖自己参考boo ...

  3. js+css jQuery实现页面后退执行 & 遮罩弹框

    JS部分 <script src="http://libs.baidu.com/jquery/2.0.0/jquery.js"></script> < ...

  4. Jquary入门(添加 修改 表单元素)+ JSON+弹框

    字符串拼接 计算机语言 都是 对  数据的处理(获取/修改数据)  添加元素  除了  固定的方法添加 以外 都是   字符串拼接(拼接成固定格式即可执行). 1.表单添加元素  append() 方 ...

  5. javascript中的弹框

    大家都见过某度中的恶意广告,你关闭了又出来了!为何,JS来告诉你 效果猛戳此处 HTML <body> <h3 class="whiteColor">无法关 ...

  6. 自己写的基于bootstrap风格的弹框插件

    自己写的一款基于bootstrap风格的弹框插件,暂时只有确认框.提示框.后续功能扩展.bug修改再更新. ;(function($){ //默认参数 var PARAMS; var DEFAULTP ...

  7. js弹框3秒后自动消失

    开发中有时候会需要最出弹框后,过几秒自动消失的效果,下面给大家分享一下我自己做的一个小案例. 案例中的弹框使用的是bootstrap里面的模态框,实现自动消失则用的是js中的setInterval方法 ...

  8. html实现弹框,并伴随遮罩层,且弹框居中

    本文介绍的内容主要实现的功能有,出现弹框,并且伴随遮罩层,且弹框一直居中. html和js代码: <div id="hidebg"></div> <d ...

  9. bootstrap弹框

    http://v3.bootcss.com/javascript/#modals 参考bootstrap官网 模态框做php后端 前端一直不行,但是很多时候 用到ajax都要用到弹框,一直在代码里面找 ...

随机推荐

  1. MySQL 有关权限的表都有哪几个?

    MySQL 服务器通过权限表来控制用户对数据库的访问,权限表存放在 MySQL 数 据库里,由 MySQL_install_db 脚本初始化.这些权限表分别 user,db,table_priv,co ...

  2. 如何理解 Spring 中的代理?

    将 Advice 应用于目标对象后创建的对象称为代理.在客户端对象的情况下,目 标对象和代理对象是相同的. Advice + Target Object = Proxy

  3. 常见算法的时间复杂度(大O计数法)

    定义 ​ 对于不同的机器环境而言,确切的单位时间是不同的,但是对于算法进行多少个基本操作(即花费多少时间单位)在规模数量级上却是相同的,由此可以忽略机器环境的影响而客观的反应算法的时间效率. 对于算法 ...

  4. 顺利通过EMC实验(17)

  5. CSS3渐变效果工具

    推荐一个css3渐变效果工具,觉得有帮助的可以收藏下. 工具链接 CSS3 渐变(gradients)可以让你在两个或多个指定的颜色之间显示平稳的过渡.CSS3 定义了两种类型的渐变(gradient ...

  6. (SSM框架)实现小程序图片上传(配小程序源码)

    阅读本文约"2分钟" 又是一个开源小组件啦! 因为刚好做到这个小功能,所以就整理了一下,针对微信小程序的图片(文件)上传! 原业务是针对用户反馈的图片上传.(没错,本次还提供小程序 ...

  7. css布局基础总结

    前端css布局知识繁杂,实现方式多种多样.想写出高效.合理的布局,必须以深厚的css基础为前提.为了方便记忆和复习,将css布局要点记录如下.内容较多,应用方面说的不太详细,但都是很实用的点. 所谓布 ...

  8. Java/C++实现策略模式---旅游出行方式

    旅游的出行方式有乘坐飞机旅行.乘火车旅行和自行车游,不同的旅游方式有不同的实现过程,客户可以根据自己的需要选择一种合适的旅行方式. 类图: Java代码: public class Person { ...

  9. 各种类型的Dialog

    下面是几种对话框的效果 图一: 图二: 图三: 图四: 图五: 图六: 图七: 图1效果:该效果是当按返回按钮时弹出一个提示,来确保无误操作,采用常见的对话框样式. 代码: 创建对话框方法dialog ...

  10. java中什么叫覆盖Override?请给实例

    5.覆盖(Override) 马克-to-win:方法的覆盖(Override)是指子类重写从父类继承来的一个同名方法(参数.返回值也同). 例1.5.1-- class AAAMark_to_win ...