分享两款带遮罩的jQuery弹出框


Posted in Javascript onDecember 30, 2015

第一款:页面遮罩弹出框是最常见的一种状况,用jQuery完成页面遮罩弹出框,主要用的技能有JQuery,css与html。

 html代码下列:

<div id="main"><a href="javascript:showBg();">点击这里查看效果</a>
 <div id="fullbg"></div>
 <div id="dialog">
 <p class="close"><a href="#" onclick="closeBg();">封闭</a></p>
 <div>正在加载,请稍后....</div>
 </div>
</div>

css代码以下:

body {
 font-family:Arial, Helvetica, sans-serif;
 font-size:12px;
 margin:0;
}
#main {
 height:1800px;
 padding-top:90px;
 text-align:center;
}
#fullbg {
 bac千克round-color:gray;
 left:0;
 opacity:0.5;
 position:absolute;
 top:0;
 z-index:3;
 filter:alpha(opacity=50);
 -moz-opacity:0.5;
 -khtml-opacity:0.5;
}
#dialog {
 bac公斤round-color:#fff;
 border:5px solid rgba(0,0,0, 0.4);
 height:400px;
 left:50%;
 margin:-200px 0 0 -200px;
 padding:1px;
 position:fixed !important; /* 浮动对话框 */
 position:absolute;
 top:50%;
 width:400px;
 z-index:5;
 border-radius:5px;
 display:none;
}
#dialog p {
 margin:0 0 12px;
 height:24px;
 line-height:24px;
 bac公斤round:#CCCCCC;
}
#dialog p.close {
 text-align:right;
 padding-right:10px;
}
#dialog p.close a {
 color:#fff;
 text-decoration:none;
}

jQuery代码以下:

<script type="text/javascript">
 //展示灰色 jQuery 遮罩层
 function showBg() {
 var bh = $("body").height();
 var bw = $("body").width();
 $("#fullbg").css({
  height:bh,
  width:bw,
  display:"block"
 });
 $("#dialog").show();
 }
 //关闭灰色 jQuery 遮罩
 function closeBg() {
 $("#fullbg,#dialog").hide();
 }
 </script>

第二款:简单制作一个jQuery遮罩层,当然也可以做成公共函数,方便以后多次使用.本教程适合新手。

首先给出html:

<p class="showbtn"><a href="javascript:void(0);">显示遮罩层</a></p>
<div id="bg"></div>
<div class="box" style="display:none">
 <h2>jQuery 学习交流<a href="#" class="close">关闭</a></h2>
 <div class="list">
 <ul>
  <li>三水点靠木</li>
  <li>三水点靠木</li>
  <li>三水点靠木</li>
 </ul>
 </div>
</div>

遮罩层的样式如下:

/* box */
.box{position:absolute;width:600px;left:50%;height:auto;z-index:100;background-color:#fff;border:1px #ddd solid;padding:1px;}
.box h2{height:25px;font-size:14px;background-color:#aaa;position:relative;padding-left:10px;line-height:25px;color:#fff;}
.box h2 a{position:absolute;right:5px;font-size:12px;color:#fff;}
.box .list{padding:10px;}
.box .list li{height:24px;line-height:24px;}
.box .list li span{margin:0 5px 0 0;font-family:"宋体";font-size:12px;font-weight:400;color:#ddd;}
.showbtn {font:bold 24px '微软雅黑';}
#bg{background-color:#666;position:absolute;z-index:99;left:0;top:0;display:none;width:100%;height:100%;opacity:0.5;filter: alpha(opacity=50);-moz-opacity: 0.5;}

最后是jQuery来实现弹出层的显示和隐藏:

$(function () {
 $(".showbtn").click(function () {
 $("#bg").css({
  display: "block", height: $(document).height()
 });
 var $box = $('.box');
 $box.css({
  //设置弹出层距离左边的位置
  left: ($("body").width() - $box.width()) / 2 - 20 + "px",
  //设置弹出层距离上面的位置
  top: ($(window).height() - $box.height()) / 2 + $(window).scrollTop() + "px",
  display: "block"
 });
 });
 //点击关闭按钮的时候,遮罩层关闭
 $(".close").click(function () {
 $("#bg,.box").css("display", "none");
 });
});

总结:使用jQuery实现遮罩的思路就是点击按钮的时候触发遮罩层,过弹出层的css层级z-index让遮罩层遮住整个页面,同时通过弹出层的css层级z-index高于遮罩层,这样弹出层就高亮显示了。然后点击关闭弹出层按钮的时候,让弹出层隐藏,同时也让遮罩层隐藏。这种方法写法是比较快速的,后续有空我会把这段代码写成公共函数,这样方便多次调用。

以上就是本文的全部内容,希望对大家的学习有所帮助。

Javascript 相关文章推荐
window.addEventListener来解决让一个js事件执行多个函数
Dec 26 Javascript
yui3的AOP(面向切面编程)和OOP(面向对象编程)
May 01 Javascript
日常收集整理的JavaScript常用函数方法
Dec 10 Javascript
JavaScript继承模式粗探
Jan 12 Javascript
深入学习AngularJS中数据的双向绑定机制
Mar 04 Javascript
jQuery UI Bootstrap是什么?
Jun 17 Javascript
详解js的事件处理函数和动态创建html标记方法
Dec 16 Javascript
详解windows下vue-cli及webpack 构建网站(三)使用组件
Jun 17 Javascript
各种选择框jQuery的选中方法(实例讲解)
Jun 27 jQuery
基于Bootstrap模态对话框只加载一次 remote 数据的解决方法
Jul 09 Javascript
axios实现文件上传并获取进度
Mar 25 Javascript
element-ui table组件如何使用render属性的实现
Nov 04 Javascript
JavaScript小技巧整理
Dec 30 #Javascript
jQuery拖动元素并对元素进行重新排序
Dec 30 #Javascript
jQuery给元素添加样式的方法详解
Dec 30 #Javascript
Underscore源码分析
Dec 30 #Javascript
Jsonp 关键字详解及json和jsonp的区别,ajax和jsonp的区别
Dec 30 #Javascript
javascript实现禁止复制网页内容汇总
Dec 30 #Javascript
jquery实现树形菜单完整代码
Dec 29 #Javascript
You might like
萌王史莱姆”萌王性别尴尬!那“萌战”归女组还是男?
2018/12/17 日漫
很好用的PHP数据库类
2009/05/27 PHP
PHP-CGI进程CPU 100% 与 file_get_contents 函数的关系分析
2011/08/15 PHP
php遍历删除整个目录及文件的方法
2015/03/13 PHP
php获取当前月与上个月月初及月末时间戳的方法
2016/12/05 PHP
YII框架实现自定义第三方扩展操作示例
2019/04/26 PHP
js 获取子节点函数 (兼容FF与IE)
2010/04/18 Javascript
jQuery学习笔记 更改jQuery对象
2012/09/19 Javascript
javascript间隔定时器(延时定时器)学习 间隔调用和延时调用
2014/01/13 Javascript
js实现网页自动刷新可制作节日倒计时效果
2014/05/27 Javascript
JS实现仿腾讯微博无刷新删除微博效果代码
2015/10/16 Javascript
用jQuery向div中添加Html文本内容的简单实现
2016/07/13 Javascript
vue 粒子特效的示例代码
2017/09/19 Javascript
微信小程序录音与播放录音功能
2017/12/25 Javascript
详解angular路由高亮之RouterLinkActive
2018/04/28 Javascript
详解vue项目中如何引入全局sass/less变量、function、mixin
2018/06/02 Javascript
[46:47]2014 DOTA2国际邀请赛中国区预选赛5.21 LGD-CDEC VS NE
2014/05/22 DOTA
Flask入门教程实例:搭建一个静态博客
2015/03/27 Python
Python从文件中读取数据的方法讲解
2019/02/14 Python
与Django结合利用模型对上传图片预测的实例详解
2019/08/07 Python
Python使用Tkinter实现转盘抽奖器的步骤详解
2020/01/06 Python
Python基于数列实现购物车程序过程详解
2020/06/09 Python
socket.io 和canvas 实现的共享画板功能
2019/05/22 HTML / CSS
跨域修改iframe页面内容详解
2019/10/31 HTML / CSS
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?用contains来区分是否有重复的对象。还是都不用
2013/07/30 面试题
个人校本研修方案
2014/05/26 职场文书
片区教研活动总结
2014/07/02 职场文书
大学课外活动总结
2014/07/09 职场文书
2014党员学习习主席讲话思想汇报
2014/09/15 职场文书
老公给老婆的检讨书(精华篇)
2014/10/18 职场文书
企业整改报告范文
2014/11/08 职场文书
2014年信贷员工作总结
2014/11/18 职场文书
校本培训个人总结
2015/02/28 职场文书
2016党员干部廉洁自律心得体会
2016/01/13 职场文书
SQL Server2019数据库备份与还原脚本,数据库可批量备份
2021/11/20 SQL Server
从零开始在Centos7上部署SpringBoot项目
2022/04/07 Servers