分享两款带遮罩的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下关于onmouseout、事件冒泡的问题经验小结
Dec 09 Javascript
JavaScript学习笔记记录我的旅程
May 23 Javascript
基于jquery实现拆分姓名的方法(纯JS版)
May 08 Javascript
JS在TextArea光标位置插入文字并实现移动光标到文字末尾
Jun 21 Javascript
node.js [superAgent] 请求使用示例
Mar 13 Javascript
jQuery实现的Tab滑动选项卡及图片切换(多种效果)小结
Sep 14 Javascript
js判断所有表单项不为空则提交表单的实现方法
Sep 09 Javascript
详解Vuejs2.0之异步跨域请求
Apr 20 Javascript
vue-awesome-swiper滑块插件使用方法详解
Nov 27 Javascript
vue中使用protobuf的过程记录
Oct 26 Javascript
webpack 开发和生产并行设置的方法
Nov 08 Javascript
layui实现下拉复选功能的例子(包括数据的回显与上传)
Sep 24 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原理的opcodes(操作码)
2010/10/26 PHP
Look And Say 序列php实现代码
2011/05/22 PHP
PHP常用开发函数解析之数组篇[未完结]
2012/07/30 PHP
php 获取页面中指定内容的实现类
2014/01/23 PHP
PHP时间和日期函数详解
2015/05/08 PHP
laravel 模型查询按照whereIn排序的示例
2019/10/16 PHP
TP3.2框架分页相关实现方法分析
2020/06/03 PHP
经验几则 推荐
2006/09/05 Javascript
用js统计用户下载网页所需时间的脚本
2008/10/15 Javascript
基于Jquery实现表格动态分页实现代码
2011/06/21 Javascript
文本框input聚焦失焦样式实现代码
2012/10/12 Javascript
深入理解JavaScript系列(33):设计模式之策略模式详解
2015/03/03 Javascript
jQuery插件EasyUI设置datagrid的checkbox为禁用状态的方法
2016/08/05 Javascript
简单谈谈JS数组中的indexOf方法
2016/10/13 Javascript
Bootstrap CDN和本地化环境搭建
2016/10/26 Javascript
浅谈jQuery中Ajax事件beforesend及各参数含义
2016/12/03 Javascript
JavaScript实现256色转灰度图
2017/02/22 Javascript
vue自定义指令的创建和使用方法实例分析
2018/12/04 Javascript
在Linux下使用Python的matplotlib绘制数据图的教程
2015/06/11 Python
Python字符编码判断方法分析
2016/07/01 Python
pycharm 主题theme设置调整仿sublime的方法
2018/05/23 Python
Python装饰器模式定义与用法分析
2018/08/06 Python
python将txt文档每行内容循环插入数据库的方法
2018/12/28 Python
python打印9宫格、25宫格等奇数格 满足横竖斜相加和相等
2019/07/19 Python
Python多线程及其基本使用方法实例分析
2019/10/29 Python
python 实现从高分辨图像上抠取图像块
2020/01/02 Python
python图片指定区域替换img.paste函数的使用
2020/04/09 Python
Python填充任意颜色,不同算法时间差异分析说明
2020/05/16 Python
惠普香港官方商店:HP香港
2019/04/30 全球购物
《山谷中的谜底》教学反思
2014/04/26 职场文书
中华魂放飞梦想演讲稿
2014/08/26 职场文书
六查六看自检自查剖析材料
2014/10/14 职场文书
2015年大学元旦晚会活动策划书
2014/12/09 职场文书
优秀党员个人总结
2015/02/14 职场文书
开工典礼致辞
2015/07/29 职场文书
小学五年级(说明文3篇)
2019/08/13 职场文书