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 相关文章推荐
jQuery 学习6 操纵元素显示效果的函数
Feb 07 Javascript
JavaScript检查数字是否为整数或浮点数的方法
Jun 09 Javascript
jquery实现兼容IE8的异步上传文件
Jun 15 Javascript
jquery attr()设置和获取属性值实例教程
Sep 25 Javascript
jsTree使用记录实例
Dec 01 Javascript
JS中使用gulp实现压缩文件及浏览器热加载功能
Jul 12 Javascript
详解JavaScript实现动态的轮播图效果
Apr 29 Javascript
layui按条件隐藏表格列的实例
Sep 19 Javascript
JS自定义对象创建与简单使用方法示例
Jan 15 Javascript
vue相同路由跳转强制刷新该路由组件操作
Aug 05 Javascript
OpenLayers实现图层切换控件
Sep 25 Javascript
Vue elementUI表单嵌套表格并对每行进行校验详解
Feb 18 Vue.js
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
PHP7使用ODBC连接SQL Server2008 R2数据库示例【基于thinkPHP5.1框架】
2019/05/06 PHP
php进程(线程)通信基础之System V共享内存简单实例分析
2019/11/09 PHP
php7 参数、整形及字符串处理机制修改实例分析
2020/05/25 PHP
javascript 写类方式之十
2009/07/05 Javascript
Area 区域实现post提交数据的js写法
2014/04/22 Javascript
让html页面不缓存js的实现方法
2014/10/31 Javascript
javascript关于继承的用法汇总
2014/12/20 Javascript
原生JavaScript编写俄罗斯方块
2015/03/30 Javascript
Javascript字符串拼接小技巧(推荐)
2016/06/02 Javascript
[原创]JS基于FileSaver.js插件实现文件保存功能示例
2016/12/08 Javascript
微信小程序 PHP后端form表单提交实例详解
2017/01/12 Javascript
JavaScript实现自动跳转文本功能
2017/05/25 Javascript
基于zTree树形菜单的使用实例
2017/12/25 Javascript
在nginx上部署vue项目(history模式)的方法
2017/12/28 Javascript
使用socket.io制做简易WEB聊天室
2018/01/02 Javascript
koa上传excel文件并解析的实现方法
2018/08/09 Javascript
Node.js实现批量下载图片简单操作示例
2020/01/18 Javascript
Python贪吃蛇游戏编写代码
2020/10/26 Python
matplotlib绘制动画代码示例
2018/01/02 Python
python 字典 按key值大小 倒序取值的实例
2018/07/06 Python
Python连接Redis的基本配置方法
2018/09/13 Python
在Python 字典中一键对应多个值的实例
2019/02/03 Python
pyqt5 使用cv2 显示图片,摄像头的实例
2019/06/27 Python
开启Django博客的RSS功能的实现方法
2020/02/17 Python
Python实现JS解密并爬取某音漫客网站
2020/10/23 Python
美国现代家具和家居商店:Apt2B
2016/08/29 全球购物
广州某公司软件工程师面试题
2014/12/22 面试题
电气工程和自动化自荐信范文
2013/12/25 职场文书
财会自我鉴定范文
2013/12/27 职场文书
庆元旦活动总结
2014/07/09 职场文书
王亚平太空授课观后感
2015/06/12 职场文书
vue实现简单数据双向绑定
2021/04/28 Vue.js
Jupyter notebook 不自动弹出网页的解决方案
2021/05/21 Python
Java面试题冲刺第十七天--基础篇3
2021/08/07 面试题
Golang MatrixOne使用介绍和汇编语法
2022/04/19 Golang
python实现学员管理系统(面向对象版)
2022/06/05 Python