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 插件学习(一)
Aug 06 Javascript
JavaScript将Table导出到Excel实现思路及代码
Mar 13 Javascript
使用Jasmine和Karma对AngularJS页面程序进行测试
Mar 05 Javascript
Bootstrap富文本组件wysiwyg数据保存到mysql的方法
May 09 Javascript
JavaScript中实现键值对应的字典与哈希表结构的示例
Jun 12 Javascript
关于angularJs指令的Scope(作用域)介绍
Oct 25 Javascript
用AngularJS来实现监察表单按钮的禁用效果
Nov 02 Javascript
常用JS图片滚动(无缝、平滑、上下左右滚动)代码大全(推荐)
Dec 20 Javascript
Bootstrap源码解读下拉菜单(4)
Dec 23 Javascript
JS模拟超市简易收银台小程序代码解析
Aug 18 Javascript
详解如何用webpack4从零开始构建react开发环境
Jan 27 Javascript
wx-charts 微信小程序图表插件的具体使用
Aug 18 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
怎么样可以把 phpinfo()屏蔽掉?
2006/11/24 PHP
无需重新编译php加入ftp扩展的解决方法
2013/02/07 PHP
Javascript 学习书 推荐
2009/06/13 Javascript
javascript使用正则控制input输入框允许输入的值方法大全
2014/06/19 Javascript
用C/C++来实现 Node.js 的模块(二)
2014/09/24 Javascript
js读取json的两种常用方法示例介绍
2014/10/19 Javascript
jQuery插件boxScroll实现图片轮播特效
2015/07/14 Javascript
jQuery获取DOM节点实例分析(2种方式)
2015/12/15 Javascript
果断收藏9个Javascript代码高亮脚本
2016/01/06 Javascript
关于function类中定义变量this的简单说明
2016/05/28 Javascript
喜大普奔!jQuery发布 3.0 最终版
2016/06/12 Javascript
微信小程序进行微信支付的步骤昂述
2016/12/01 Javascript
如何防止INPUT按回车自动提交表单FORM
2016/12/06 Javascript
JavaScript实现短信倒计时60s
2017/10/09 Javascript
3种vue组件的书写形式
2017/11/29 Javascript
通过nodejs 服务器读取HTML文件渲染到页面的方法
2018/05/17 NodeJs
vue发送websocket请求和http post请求的实例代码
2019/07/11 Javascript
JS实现小米轮播图
2020/09/21 Javascript
vue+echarts实现中国地图流动效果(步骤详解)
2021/01/27 Vue.js
[01:04:02]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第二场 1月24日
2021/03/11 DOTA
[34:41]夜魇凡尔赛茶话会 第二期02:你画我猜
2021/03/11 DOTA
Python中除法使用的注意事项
2014/08/21 Python
Python中的包和模块实例
2014/11/22 Python
python使用urllib2提交http post请求的方法
2015/05/26 Python
python3.4.3下逐行读入txt文本并去重的方法
2018/04/29 Python
python如何提取英语pdf内容并翻译
2020/03/03 Python
Pycharm导入anaconda环境的教程图解
2020/07/31 Python
英国最大的在线蜡烛商店:Candles Direct
2019/03/26 全球购物
大学生敬老院活动总结
2015/05/07 职场文书
人民检察院起诉书
2015/05/20 职场文书
红色故事汇观后感
2015/06/18 职场文书
运动会广播稿20字
2015/08/19 职场文书
导游词之苏州阳澄湖
2019/11/15 职场文书
如何正确理解python装饰器
2021/06/15 Python
vue+iview实现手机号分段输入框
2022/03/25 Vue.js
Win11显卡控制面板打开显卡设置方法
2022/04/20 数码科技