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用户自定义类的类名称的代码
Mar 08 Javascript
基于JQuery 的消息提示框效果代码
Jul 31 Javascript
基于OL2实现百度地图ABCD marker的效果
Oct 01 Javascript
jquery $.trim()去除字符串空格的实现方法【附图例】
Mar 30 Javascript
Bootstrap教程JS插件弹出框学习笔记分享
May 17 Javascript
js封装成插件_Canvas统计图插件编写实例
Sep 12 Javascript
浅析node Async异步处理模块用例分析及常用方法介绍
Nov 17 Javascript
详解Immutable及 React 中实践
Mar 01 Javascript
vue-router之nuxt动态路由设置的两种方法小结
Sep 26 Javascript
详解angularjs4部署文件过大解决过程
Dec 05 Javascript
vue router动态路由设置参数可选问题
Aug 21 Javascript
如何换个角度使用VUE过滤器详解
Sep 11 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
Terran剧情介绍
2020/03/14 星际争霸
一个php作的文本留言本的例子(二)
2006/10/09 PHP
php mssql 分页SQL语句优化 持续影响
2009/04/26 PHP
PHP+MYSQL实现用户的增删改查
2015/03/24 PHP
php文件包含目录配置open_basedir的使用与性能详解
2017/04/03 PHP
stream.js 一个很小、完全独立的Javascript类库
2011/10/28 Javascript
jquery属性过滤选择器使用示例
2013/06/18 Javascript
jquery通过select列表选择框对表格数据进行过滤示例
2014/05/07 Javascript
jQuery实现的导航条切换可显示隐藏
2014/10/22 Javascript
javascript同步服务器时间和同步倒计时小技巧
2015/09/24 Javascript
用JS中split方法实现彩色文字背景效果实例
2016/08/24 Javascript
jQuery源码解读之extend()与工具方法、实例方法详解
2017/03/30 jQuery
jQuery封装placeholder效果实现方法,让低版本浏览器支持该效果
2017/07/08 jQuery
React Native之ListView实现九宫格效果的示例
2017/08/02 Javascript
对vue中methods互相调用的方法详解
2018/08/30 Javascript
JS实现可用滑块滑动的缓动图代码
2019/09/01 Javascript
解决layui的form里的元素进行动态生成,验证失效的问题
2019/09/14 Javascript
小程序实现日历左右滑动效果
2019/10/21 Javascript
ant-design-vue 时间选择器赋值默认时间的操作
2020/10/27 Javascript
如何使用gpu.js改善JavaScript的性能
2020/12/01 Javascript
在Python中实现贪婪排名算法的教程
2015/04/17 Python
Python教程之全局变量用法
2016/06/27 Python
Python爬虫自动化获取华图和粉笔网站的错题(推荐)
2021/01/08 Python
css3 条纹化和透明化表格Firefox下测试成功
2014/04/15 HTML / CSS
Strawberrynet草莓网新加坡站:护肤、彩妆、香水及美发产品
2018/08/31 全球购物
理肤泉英国官网:La Roche-Posay英国
2019/01/14 全球购物
歌唱比赛主持词
2014/03/18 职场文书
六查六看自检自查剖析材料
2014/10/14 职场文书
大学生自荐信怎么写
2015/03/26 职场文书
借条格式范本
2015/05/25 职场文书
班级联欢会主持词
2015/07/03 职场文书
如何用JavaScript实现一个数组惰性求值库
2021/05/05 Javascript
PostgreSQL解析URL的方法
2021/08/02 PostgreSQL
nginx实现动静分离的方法示例
2021/11/07 Servers
Redis实战高并发之扣减库存项目
2022/04/14 Redis
分享很少见很有用的SQL功能CORRESPONDING
2022/08/05 MySQL