分享两款带遮罩的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 bind事件使用详解
May 05 Javascript
JQuery中如何传递参数如click(),change()等具体实现
Apr 28 Javascript
通过一段代码简单说js中的this的使用
Jul 23 Javascript
jquery限定文本框只能输入数字即整数和小数
Nov 29 Javascript
js隐式全局变量造成的bug示例代码
Apr 22 Javascript
Bootstrap弹出框(modal)垂直居中的问题及解决方案详解
Jun 12 Javascript
javascript 四十条常用技巧大全
Sep 09 Javascript
JavaScript常用代码书写规范的超全面总结
Sep 11 Javascript
AngualrJs清除定时器遇到的坑
Oct 13 Javascript
vue中改变选中当前项的显示隐藏或者状态的实现方法
Feb 08 Javascript
通过实例解析chrome如何在mac环境中安装vue-devtools插件
Jul 10 Javascript
js前端传json后台接收‘‘被转为quot的问题解决
Nov 12 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 正则 过滤html 的超链接
2009/06/02 PHP
Zend Framework教程之Zend_Controller_Plugin插件用法详解
2016/03/07 PHP
Symfony2实现从数据库获取数据的方法小结
2016/03/18 PHP
网上应用的一个不错common.js脚本
2007/08/08 Javascript
利用404错误页面实现UrlRewrite的实现代码
2008/08/20 Javascript
编写跨浏览器的javascript代码必备[js多浏览器兼容写法]
2008/10/29 Javascript
js判断选择的时间是否大于今天的代码
2013/08/20 Javascript
多种方法实现360浏览器下禁止自动填写用户名密码
2014/06/16 Javascript
JS实现页面数据无限加载
2016/09/13 Javascript
微信小程序 input输入框详解及简单实例
2017/01/10 Javascript
JavaScript ES6中export、import与export default的用法和区别
2017/03/14 Javascript
JS验证码实现代码
2017/09/14 Javascript
Javascript防止图片拉伸的自适应处理方法
2017/12/26 Javascript
vue 中的keep-alive实例代码
2018/07/20 Javascript
vue动画打包后失效问题的解决方法
2018/09/18 Javascript
在Vue项目中引入JQuery-ui插件的讲解
2019/01/27 jQuery
微信小程序网络层封装的实现(promise, 登录锁)
2019/05/08 Javascript
这15个Vue指令,让你的项目开发爽到爆
2019/10/11 Javascript
解决echarts 一条柱状图显示两个值,类似进度条的问题
2020/07/20 Javascript
详解JavaScript中的链式调用
2020/11/27 Javascript
mapboxgl实现带箭头轨迹线的代码
2021/01/04 Javascript
Python编程中的for循环语句学习教程
2015/10/14 Python
Python判断文件或文件夹是否存在的三种方法
2017/07/27 Python
简单谈谈Python的pycurl模块
2018/04/07 Python
在Python 中实现图片加框和加字的方法
2019/01/26 Python
PIL图像处理模块paste方法简单使用详解
2019/07/17 Python
python 初始化一个定长的数组实例
2019/12/02 Python
Expedia爱尔兰:酒店、机票、租车及廉价假期
2017/01/02 全球购物
微软澳洲官方网站:Microsoft Australia
2017/01/10 全球购物
入党积极分子介绍信
2014/01/17 职场文书
护理专科毕业自荐信范文
2014/04/21 职场文书
体育课外活动总结
2014/07/08 职场文书
2014年六五普法工作总结
2014/11/25 职场文书
银行稽核岗位职责
2015/04/13 职场文书
社区低保工作总结2015
2015/07/23 职场文书
spring 项目实现限流方法示例
2022/07/15 Java/Android