分享两款带遮罩的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 相关文章推荐
Jquery跨域获得Json时invalid label错误的解决办法
Jan 11 Javascript
JavaScript运算符小结
Jun 03 Javascript
javascript实现数组内值索引随机化及创建随机数组的方法
Aug 10 Javascript
javascript中window.open在原来的窗口中打开新的窗口(不同名)
Nov 15 Javascript
js记录点击某个按钮的次数-刷新次数为初始状态的实例
Feb 15 Javascript
javascript实现非常简单的小数取整功能示例
Jun 13 Javascript
深入浅析ES6 Class 中的 super 关键字
Oct 20 Javascript
vue-cli构建项目下使用微信分享功能
May 28 Javascript
bootstrap下拉框动态赋值方法
Aug 10 Javascript
vue中使用heatmapjs的示例代码(结合百度地图)
Sep 05 Javascript
Vue中keep-alive 实现后退不刷新并保持滚动位置
Mar 17 Javascript
用JS创建一个录屏功能
Nov 11 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修改时间格式的代码
2011/05/29 PHP
php中XMLHttpRequest(Ajax)不能设置自定义的Referer的解决方法
2011/11/26 PHP
php正则替换处理HTML页面的方法
2015/06/17 PHP
javascript import css实例代码
2008/07/18 Javascript
Js 获取Gridview选中行的内容操作步骤
2013/02/05 Javascript
JavaScript在for循环中绑定事件解决事件参数不同的情况
2014/01/20 Javascript
javascript操作字符串的原生方法
2014/12/22 Javascript
ionic实现滑动的三种方式
2016/08/27 Javascript
jQuery禁用快捷键例如禁用F5刷新 禁用右键菜单等的简单实现
2016/08/31 Javascript
js 提取某()特殊字符串长度的实例
2017/12/06 Javascript
layDate日期控件使用方法详解
2018/11/15 Javascript
基于mpvue小程序使用echarts画折线图的方法示例
2019/04/24 Javascript
聊聊Vue中provide/inject的应用详解
2019/11/10 Javascript
python写的一个文本编辑器
2014/01/23 Python
Python中动态获取对象的属性和方法的教程
2015/04/09 Python
无法使用pip命令安装python第三方库的原因及解决方法
2018/06/12 Python
python爬取微信公众号文章
2018/08/31 Python
python使用suds调用webservice接口的方法
2019/01/03 Python
python打开文件的方式有哪些
2020/06/29 Python
python中的插入排序的简单用法
2021/01/19 Python
html5 touch事件实现页面上下滑动效果【附代码】
2016/03/10 HTML / CSS
美国第一个网上卖鞋零售商:OnlineShoes.com
2017/09/24 全球购物
Booking.com西班牙:全球酒店预订
2018/03/30 全球购物
香港彩色隐形眼镜在线商店:Stunninglens(全球免费送货)
2019/05/10 全球购物
会计专业毕业生推荐信
2013/11/05 职场文书
电气工程师岗位职责
2014/01/01 职场文书
2014庆六一活动方案
2014/03/02 职场文书
户外活动总结范文
2014/04/30 职场文书
基层党支部公开承诺书
2014/05/29 职场文书
党的群众路线教育实践活动查摆剖析材料
2014/10/10 职场文书
民政局离婚协议书范本
2014/10/20 职场文书
2014小学年度工作总结
2014/12/20 职场文书
学习型家庭事迹材料(2016精选版)
2016/02/29 职场文书
详解redis分布式锁的这些坑
2021/05/19 Redis
Python开发之QT解决无边框界面拖动卡屏问题(附带源码)
2021/05/27 Python
Mysql排序的特性详情
2021/11/01 MySQL