Jquery实现遮罩层的方法


Posted in Javascript onJune 08, 2015

本文实例讲述了Jquery实现遮罩层的方法。分享给大家供大家参考。具体如下:

1、假设#main为页面body中的最外层Div标签

2、背景被遮罩后,显示的弹出窗(默认是不显示的,所包含的CSS这里就不贴了):

<!-- Status Bar Start -->
<div id="warning-dialog" class="status warning center-top no-display">
 <p class="closestatus"><a href="javascript:$().hideWarningDialog()" title="Close">x</a></p>
 <div class="clear"></div>
 <p><img src="images/icon_warning.png" alt="Warning" /><span id="warning-dialog-detail">Attention!</span></p>
 <div class="closes">
  <input type="hidden" id="refresh-after-warning" value="false" />
  <input name="" type="image" src="images/niu_qd.jpg" align="absmiddle" class="button_jl" onclick="javascript:$().hideWarningDialog()" />
 </div>
</div>
<!-- Status Bar End -->

3、在script.js中定义遮罩函数以及弹出窗操作函数,当然script.js,jquery.js需要包含在html页面中:

var warning_dialog = $('#warning-dialog'), 
 warning_dialog_detail = $('#warning-dialog-detail'), 
 refresh_after_warning = $('#refresh-after-warning');
// 显示遮罩层
$.fn.showWarningDialog = function(detail, refresh) {
 if ($isIE6) {
  $(".menu_select").hide();
 }
 $.fn.mask();
 warning_dialog_detail.html(detail);
 refresh_after_warning.val(refresh);
 warning_dialog.css({
  "position" : "absolute",
  "left" : "50%",
  "top" : "50%",
  "margin-left" : "-250px",
  "margin-top" : "-100px",
  "border" : "solid 3px #ccc",
  "z-index" : 6000
 });
 warning_dialog.show();
}
// 去除遮罩层
$.fn.hideWarningDialog = function() {
 if ($isIE6) {
  $(".menu_select").show();
 }
 $.fn.unmask();
 if (refresh_after_warning.val() == "true") {
  $('#main').showLoading();
  location.reload(true);
 } else
  warning_dialog.hide();
}
// 显示遮罩效果
$.fn.mask = function() {
 this.unmask();
 // 参数
 var op = {
  bgcolor : '#ccc',
  z : 5100,
  opacity : 0.3
 };
 var position = {
  top : 0,
  left : 0
 };
 var original = $("#main");
 // 创建一个 Mask 层,追加到对象中
 var maskDiv = $('<div class="maskdivgen"> </div>');
 maskDiv.appendTo(original);
 var maskWidth = original.width();
 var maskHeight = original.height();
 maskDiv.css({
  position : 'absolute',
  top : position.top,
  left : position.left,
  'z-index' : op.z,
  width : maskWidth,
  height : maskHeight,
  'background-color' : op.bgcolor,
  opacity : 0
 });
 maskDiv.fadeIn('fast', function() {
  // 淡入淡出效果
  $(this).fadeTo('fast', op.opacity);
 });
 return maskDiv;
}
// 去除遮罩效果
$.fn.unmask = function() {
 var original = $("#main");
 if (this[0] && this[0] !== window.document) {
  original = $(this[0]);
 }
 original.find("> div.maskdivgen").fadeOut('fast', 0, function() {
  $(this).remove();
 });
}

本例中使用main标签获得高度,宽度,如果不想通过标签获得页面高度和宽度,可通过如下方式获得

/* 当前页面高度 */
 function pageHeight() {
  return document.body.scrollHeight;
 }
 /* 当前页面宽度 */
 function pageWidth() {
  return document.body.scrollWidth;
 }

4、调用遮罩层:

<script type="text/javascript">
 function init() {
  <?php
   if ($msg != "用户名输入错误") {
  ?>
   $.fn.showWarningDialog("<?php echo $msg; ?>", "false");
  <?php
   }
  ?> 
 }
 window.onload = function(){
  init();
 };
 </script>

希望本文所述对大家的jQuery程序设计有所帮助。

Javascript 相关文章推荐
原生javascript实现图片轮播效果代码
Sep 03 Javascript
javascript:json数据的页面绑定示例代码
Jan 26 Javascript
jQuery中empty()方法用法实例
Jan 16 Javascript
JavaScript中扩展Array contains方法实例
Aug 23 Javascript
jQuery取消ajax请求的方法
Jun 09 Javascript
JavaScript中的事件委托及好处
Jul 12 Javascript
初探Vue3.0 中的一大亮点Proxy的使用
Dec 06 Javascript
vue项目打包之后背景样式丢失的解决方案
Jan 17 Javascript
详解关于element级联选择器数据回显问题
Feb 20 Javascript
JavaScript如何实现元素全排列实例代码
May 14 Javascript
JS异步处理的进化史深入讲解
Aug 25 Javascript
Vue实现鼠标经过文字显示悬浮框效果的示例代码
Oct 14 Javascript
js正则匹配出所有图片及图片地址src的方法
Jun 08 #Javascript
Js数组排序函数sort()介绍
Jun 08 #Javascript
元素绑定click点击事件方法
Jun 08 #Javascript
JavaScript获取URL汇总
Jun 08 #Javascript
详解JavaScript中的forEach()方法的使用
Jun 08 #Javascript
详解JavaScript中的every()方法
Jun 08 #Javascript
JavaSciprt中处理字符串之sup()方法的使用教程
Jun 08 #Javascript
You might like
LotusPhp笔记之:Logger组件的使用方法
2013/05/06 PHP
Thinkphp5.0 框架使用模型Model添加、更新、删除数据操作详解
2019/10/11 PHP
firefo xml 读写实现js代码
2009/06/11 Javascript
分享20款好玩的jQuery游戏
2011/04/17 Javascript
你必须知道的Javascript知识点之&quot;this指针&quot;的应用
2013/04/23 Javascript
JavaScript中九种常用排序算法
2014/09/02 Javascript
加随机数引入脚本不让浏览器读取缓存
2014/09/04 Javascript
javascript转换日期字符串为Date日期对象的方法
2015/02/13 Javascript
js贪吃蛇网页版游戏特效代码分享(挑战十关)
2015/08/24 Javascript
基于JQuery和CSS3实现仿Apple TV海报背景视觉差特效源码分享
2015/09/21 Javascript
JS延时器提示框的应用实例代码解析
2016/04/27 Javascript
jQuery Mobile动态刷新页面样式的实现方法
2016/05/28 Javascript
Js动态设置rem来实现移动端字体的自适应代码
2016/10/14 Javascript
jQuery向webApi提交post json数据
2017/01/16 Javascript
VueJS 集成 Medium Editor的示例代码 (自定义编辑器按钮)
2017/08/24 Javascript
angularjs路由传值$routeParams详解
2020/09/05 Javascript
详解vue-cli中模拟数据的两种方法
2018/07/03 Javascript
微信小程序获取音频时长与实时获取播放进度问题
2018/08/28 Javascript
JSONP解决JS跨域问题的实现
2020/05/25 Javascript
[02:16]DOTA2超级联赛专访Burning 逆袭需要抓住机会
2013/06/24 DOTA
基于python 处理中文路径的终极解决方法
2018/04/12 Python
python进行两个表格对比的方法
2018/06/27 Python
Python实现读取txt文件中的数据并绘制出图形操作示例
2019/02/26 Python
python判断自身是否正在运行的方法
2019/08/08 Python
vim自动补全插件YouCompleteMe(YCM)安装过程解析
2019/10/21 Python
Python程序暂停的正常处理方法
2019/11/07 Python
pandas 对group进行聚合的例子
2019/12/27 Python
tensorflow实现测试时读取任意指定的check point的网络参数
2020/01/21 Python
zooplus德国:便宜地订购动物用品、动物饲料、动物食品
2020/05/06 全球购物
班级标语大全
2014/06/21 职场文书
上课玩手机的检讨书
2014/10/01 职场文书
班子个人四风问题整改措施
2014/10/04 职场文书
教师个人工作总结范文2014
2014/11/10 职场文书
2019年12月24日平安夜祝福语集锦
2019/12/24 职场文书
5种方法告诉你如何使JavaScript 代码库更干净
2021/09/15 Javascript
【海涛DOTA】D-cup邀请赛NV.cn vs DT.Love
2022/04/01 DOTA