分享两款带遮罩的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实现的一个Flash滚动轮换显示图片代码生成器
Mar 14 Javascript
Javascript 中 null、NaN和undefined的区别总结
Apr 10 Javascript
变量声明时命名与变量作为对象属性时命名的区别解析
Dec 06 Javascript
详解jQuery UI库中文本输入自动补全功能的用法
Apr 23 Javascript
JavaScript 闭包机制详解及实例代码
Oct 10 Javascript
bootstrap flask登录页面编写实例
Nov 01 Javascript
小程序多图列表实现性能优化的方法步骤
May 28 Javascript
vue+element 模态框表格形式的可编辑表单实现
Jun 07 Javascript
详解vuex的简单todolist例子
Jul 14 Javascript
实例分析JS中的相等性判断===、 ==和Object.is()
Nov 17 Javascript
详解Vue.js 可拖放文本框组件的使用
Mar 03 Vue.js
vue+elementui 实现新增和修改共用一个弹框的完整代码
Jun 08 Vue.js
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你的验证码安全码?
2007/01/02 PHP
Blitz templates 最快的PHP模板引擎
2010/04/06 PHP
ThinkPHP实现跨模块调用操作方法概述
2014/06/20 PHP
thinkPHP+ajax实现统计页面pv浏览量的方法
2017/03/15 PHP
php封装的mongodb操作类代码
2017/08/06 PHP
JS request函数 用来获取url参数
2010/05/17 Javascript
js控制页面控件隐藏显示的两种方法介绍
2013/10/09 Javascript
javascript生成随机颜色示例代码
2014/05/05 Javascript
table insertRow、deleteRow定义和用法总结
2014/05/14 Javascript
Javascript中使用A标签获取当前目录的绝对路径方法
2015/03/02 Javascript
JavaScript获取浏览器信息的方法
2015/11/20 Javascript
图片旋转、鼠标滚轮缩放、镜像、切换图片js代码
2020/12/13 Javascript
JS遍历数组和对象的区别及递归遍历对象、数组、属性的方法详解
2016/06/14 Javascript
javascript中异常处理案例(推荐)
2016/10/03 Javascript
Nodejs下用submit提交表单提示cannot post错误的解决方法
2016/11/21 NodeJs
JavaScript实现图片切换效果
2017/08/12 Javascript
详解ajax的data参数错误导致页面崩溃
2018/04/30 Javascript
微信小程序用户信息encryptedData详解
2018/08/24 Javascript
vue中node_modules中第三方模块的修改使用详解
2019/05/31 Javascript
Python使用CMD模块更优雅的运行脚本
2015/05/11 Python
举例详解Python中threading模块的几个常用方法
2015/06/18 Python
Python 多进程和数据传递的理解
2017/10/09 Python
Django 登陆验证码和中间件的实现
2018/08/17 Python
详解Python传入参数的几种方法
2019/05/16 Python
浅谈Python 递归算法指归
2019/08/22 Python
详解用Python爬虫获取百度企业信用中企业基本信息
2020/07/02 Python
编写python代码实现简单抽奖器
2020/10/20 Python
Python生成pdf目录书签的实例方法
2020/10/29 Python
python中Array和DataFrame相互转换的实例讲解
2021/02/03 Python
PacSun官网:加州生活方式服装、鞋子和配饰
2018/03/10 全球购物
六一儿童节主持词
2014/03/21 职场文书
学习张林森心得体会
2014/09/10 职场文书
2014年财务人员工作总结
2014/11/11 职场文书
工会积极分子个人总结
2015/03/03 职场文书
入团介绍人意见范文
2015/06/04 职场文书
研究生毕业登记表的自我鉴定范文
2019/07/15 职场文书