分享两款带遮罩的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 相关文章推荐
JS Excel读取和写入操作(模板操作)实现代码
Apr 11 Javascript
JavaScript中的onerror事件概述及使用
Apr 01 Javascript
JQuery给元素绑定click事件多次执行的解决方法
May 29 Javascript
jquery+ajax验证不通过也提交表单问题处理
Dec 12 Javascript
分享10个原生JavaScript技巧
Apr 20 Javascript
javascript检查浏览器是否已经启用XX功能
Jul 10 Javascript
ReactJs快速入门教程(精华版)
Nov 28 Javascript
three.js实现3D模型展示的示例代码
Dec 31 Javascript
web前端vue filter 过滤器
Jan 12 Javascript
js装饰设计模式学习心得
Feb 17 Javascript
JS实现简单的表格增删
Jan 16 Javascript
ssm+vue前后端分离框架整合实现(附源码)
Jul 08 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
用PHP查询域名状态whois的类
2006/11/25 PHP
PHP中iconv函数知识汇总
2015/07/02 PHP
[原创]ThinkPHP中SHOW_RUN_TIME不能正常显示运行时间的解决方法
2015/10/10 PHP
YII CLinkPager分页类扩展增加显示共多少页
2016/01/29 PHP
让复选框只能选择一项的方法
2013/10/08 Javascript
jQuery操作CheckBox的方法介绍(选中,取消,取值)
2014/02/04 Javascript
学习JavaScript设计模式之享元模式
2016/01/18 Javascript
Angularjs添加排序查询功能的实例代码
2017/10/24 Javascript
js实现掷骰子小游戏
2019/10/24 Javascript
vue绑定class的三种方法
2020/12/24 Vue.js
[01:34]完美“圣”典宣传片震撼发布,12.17与你不见不散
2016/12/16 DOTA
[01:02:38]DOTA2-DPC中国联赛定级赛 LBZS vs Phoenix BO3第二场 1月10日
2021/03/11 DOTA
Python找出文件中使用率最高的汉字实例详解
2015/06/03 Python
Python执行时间的计算方法小结
2017/03/17 Python
pandas groupby 分组取每组的前几行记录方法
2018/04/20 Python
pandas 转换成行列表进行读取与Nan处理的方法
2018/10/30 Python
利用python中集合的唯一性实现去重
2020/02/11 Python
keras.utils.to_categorical和one hot格式解析
2020/07/02 Python
CSS3 calc()会计算属性详解
2018/02/27 HTML / CSS
网页中的电话号码如何实现一键直呼效果_附示例
2016/03/15 HTML / CSS
html5中canvas图表实现柱状图的示例
2017/11/13 HTML / CSS
跨域修改iframe页面内容详解
2019/10/31 HTML / CSS
联想哥伦比亚网上商城:Lenovo Colombia
2017/01/10 全球购物
Hawes & Curtis官网:英国经典品牌
2019/07/27 全球购物
什么是ARP(Address Resolution Protocol)地址解析协议
2013/10/31 面试题
硅酸盐工业控制专业应届生求职信
2013/11/02 职场文书
会计电算化大学生职业规划书
2014/02/05 职场文书
文案策划求职信
2014/04/14 职场文书
珍惜资源的建议书
2014/08/26 职场文书
大学生第一学年自我鉴定2015
2014/09/28 职场文书
新郎婚礼答谢词
2015/01/04 职场文书
经典祝酒词大全
2015/08/12 职场文书
2016党员学习作风建设心得体会
2016/01/21 职场文书
导游词之广州陈家祠
2019/10/21 职场文书
导游词之天津盘山
2019/11/01 职场文书
nginx限制并发连接请求数的方法
2021/04/01 Servers