使用jQuery制作遮罩层弹出效果的极简实例分享


Posted in Javascript onMay 12, 2016

客户的网站上突然需要一个遮罩弹窗效果,也可以称作暗箱之类的,具体效果就是网页中背景变成半透明,然后在屏幕中间出现一个菜单之类的东西。这种效果在网上很常见,例如:QQ空间浏览相册等。这种效果的好处就是,可以让用户聚焦到弹出的菜单中。

神说,有代码的文章,应该有个 Demo ,于是就有了Demo。

HTML 结构

首先先来分析一下这个过程:触发某个事件(例如点击按钮),然后出现一个背景遮罩上面还有一个内容层。触发的按钮,我在这里用 div 来代替,并且使用 click 点击事件来演示。那么我们的 HTML 结构就很明确了。

<div class="click">点击这里</div>
 <div class="click1">效果增强版的</div>
 <div class="bg"></div>
 <div class="content">这里是正文内容</div>

CSS 代码

对于遮罩效果的 CSS 代码是最关键的。遮罩用到了两个 div ,一个作为背景,要覆盖整个网页,另一个是内容显示层,通常要居中处理。

.bg{display:none;position:fixed;width:100%;height:100%;background:#000;z-index:2;top:0;left:0;opacity:0.7;}
.content{display:none;width:500px;height:300px;position:fixed;top:50%;margin-top:-150px;background:#fff;z-index:3;left:50%;margin-left:-250px;}

简单解释一下,首先要隐藏起来,之后用 jQuery 触发显示。之后指定 position 的属性为 fixed,因为这样,才能激活 top 、left 、bottom 、right 、z-index这些属性,同时可以设置 width 、height 为 100% 来实现覆盖整个网页。通常情况下,一般用 absolute 属性值来实现这种效果,因为它的兼容性更好。但是在实际应用当中,当页面很长,往下滚动的时候,使用 absolute 遮罩层也会跟随滚动。对于内容层来说,比较简单,指定宽度和高度用负边距来使其居中显示。
特别要注意一点,背景层的半透明使用的是 opacity 属性,因为使用这个属性可以更好的用 jQuery 来控制。但是 fixed 、opacity 都是早期 IE 浏览器不支持的。

jQuery 代码

分析一下遮罩的交互操作,无非就是点击弹出,然后点击一下遮罩,消失。那么就直接对 CSS 进行操作即可。

$(function(){
  $(‘.click').click(function(){
   $(‘.bg').css({‘display':'block'});
   $(‘.content').css({‘display':'block'});
  });
  $(‘.bg').click(function(){
   $(‘.bg').css({‘display':'none'});
   $(‘.content').css({‘display':'none'});
  });
 });

这里直接使用 CSS 方法,当点击的时候改变 display 属性,此外还有很多实现方法,不再赘述。完成这些,当我们点击“点击这里”之后,就可以看到效果了。
更多技巧和方法

更平缓的显示:

点击之后,突然出现并不是一个好方法。所以我又增加了一个按钮,点击之后通过 fadeIn、fadeOut 方法来控制渐隐。

$(‘.click1').click(function(){
 $(‘.bg').fadeIn(200);
 $(‘.content').fadeIn(400);
 });
 $(‘.bg').click(function(){
 $(‘.bg').fadeOut(800);
 $(‘.content').fadeOut(800);
 });

这样简单的方法,就增强了用户体验。当然,还有一些更高级的效果可以实现。

Javascript 相关文章推荐
B/S开发中常用javaScript技术与代码
Mar 09 Javascript
JavaScript 实现的 zip 压缩和解压缩工具包Zip.js使用详解
Dec 14 Javascript
javascript数组去重小结
Mar 07 Javascript
AngularJS在IE下取数据总是缓存问题的解决方法
Aug 05 Javascript
jQuery中show与hide方法用法示例
Sep 16 Javascript
基于Vue 服务端Cookies删除的问题
Sep 21 Javascript
对angularJs中$sce服务安全显示html文本的实例
Sep 30 Javascript
详解vue 不同环境配置不同的打包命令
Apr 07 Javascript
微信小程序Page中data数据操作和函数调用方法
May 08 Javascript
layui实现图片虚拟路径上传,预览和删除的例子
Sep 25 Javascript
JS实现简单移动端鼠标拖拽
Jul 23 Javascript
node.js 如何监视文件变化
Sep 01 Javascript
JS函数的定义与调用方法推荐
May 12 #Javascript
使用jQuery实现Web页面换肤功能的要点解析
May 12 #Javascript
JS定义类的六种方式详解
May 12 #Javascript
值得分享和收藏的Bootstrap学习教程
May 12 #Javascript
jQuery中$.each()函数的用法引申实例
May 12 #Javascript
判断JS对象是否拥有某属性的方法推荐
May 12 #Javascript
JavaScript的模块化开发框架Sea.js上手指南
May 12 #Javascript
You might like
WordPress开发中短代码的实现及相关函数使用技巧
2016/01/05 PHP
php将html转为图片的实现方法
2017/05/19 PHP
php+javascript实现的动态显示服务器运行程序进度条功能示例
2017/08/07 PHP
同一页面多个商品倒计时JS 基于面向对象的javascript
2012/02/16 Javascript
JavaScript获取当前页面上的指定对象示例代码
2014/02/28 Javascript
jquery显示隐藏input对象
2014/07/21 Javascript
jQuery中prop()方法用法实例
2015/01/05 Javascript
js实现表单Radio切换效果的方法
2015/08/17 Javascript
jQuery遍历json的方法分析
2016/04/16 Javascript
用JavaScript获取页面文档内容的实现代码
2016/06/10 Javascript
JavaScript判断微信浏览器实例代码
2016/06/13 Javascript
JS中使用FormData上传文件、图片的方法
2016/08/07 Javascript
jQuery实现web页面樱花坠落的特效
2017/06/01 jQuery
JS去掉字符串前后空格、阻止表单提交的实现代码
2017/06/08 Javascript
详解Vue开发微信H5微信分享签名失败问题解决方案
2018/08/09 Javascript
详解vue-cli下ESlint 配置说明
2018/09/03 Javascript
Vue-CLI3.x 设置反向代理的方法
2018/12/06 Javascript
微信小程序-form表单提交代码实例
2019/04/29 Javascript
javascript面向对象三大特征之封装实例详解
2019/07/24 Javascript
微信小程序使用自定义组件导航实现当前页面高亮
2020/01/02 Javascript
在 Vue 中编写 SVG 图标组件的方法
2020/02/24 Javascript
[01:01:35]Optic vs paiN 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python Socket使用实例
2017/12/18 Python
Python类装饰器实现方法详解
2018/12/21 Python
Pandas之排序函数sort_values()的实现
2019/07/09 Python
python爬取盘搜的有效链接实现代码
2019/07/20 Python
深入了解Python装饰器的高级用法
2020/08/13 Python
解决Windows下python和pip命令无法使用的问题
2020/08/31 Python
HTML5页面中尝试调起APP功能
2017/09/12 HTML / CSS
FLOS美国官网:意大利高级照明工艺的传奇
2018/08/07 全球购物
英国时尚高尔夫服装购物网站:Trendy Golf
2020/01/10 全球购物
MYSQL相比于其他数据库有哪些特点
2013/07/19 面试题
会计主管岗位职责范文
2013/11/08 职场文书
法务专员岗位职责
2014/01/02 职场文书
幼儿教师考核制度
2014/01/25 职场文书
工会主席事迹材料
2014/06/03 职场文书