jQuery遮罩层实现方法实例详解(附遮罩层插件)


Posted in Javascript onDecember 08, 2015

本文实例分析了jQuery遮罩层实现方法。分享给大家供大家参考,具体如下:

1 背景半透明遮罩层样式

需要一个黑色(当然也可以其他)背景,且须设置为绝对定位,以下是项目中用到的css样式:

/* 半透明的遮罩层 */
#overlay {
  background: #000;
  filter: alpha(opacity=50); /* IE的透明度 */
  opacity: 0.5; /* 透明度 */
  display: none;
  position: absolute;
  top: 0px;
  left: 0px;
  width: 100%;
  height: 100%;
  z-index: 100; /* 此处的图层要大于页面 */
  display:none;
}

2 jQuery实现遮罩

/* 显示遮罩层 */
function showOverlay() {
  $("#overlay").height(pageHeight());
  $("#overlay").width(pageWidth());
  // fadeTo第一个参数为速度,第二个为透明度
  // 多重方式控制透明度,保证兼容性,但也带来修改麻烦的问题
  $("#overlay").fadeTo(200, 0.5);
}
/* 隐藏覆盖层 */
function hideOverlay() {
  $("#overlay").fadeOut(200);
}
/* 当前页面高度 */
function pageHeight() {
  return document.body.scrollHeight;
}
/* 当前页面宽度 */
function pageWidth() {
  return document.body.scrollWidth;
}

3 提示框

遮罩的目的无非让人无法操作内容,突出提示框,而提示框可参考上面的制作,z-index比遮罩层更高便可。主要问题是,如何控制提示框在浏览器居中。

/* 定位到页面中心 */
function adjust(id) {
  var w = $(id).width();
  var h = $(id).height();
  var t = scrollY() + (windowHeight()/2) - (h/2);
  if(t < 0) t = 0;
  var l = scrollX() + (windowWidth()/2) - (w/2);
  if(l < 0) l = 0;
  $(id).css({left: l+'px', top: t+'px'});
}
//浏览器视口的高度
function windowHeight() {
  var de = document.documentElement;
  return self.innerHeight || (de && de.clientHeight) || document.body.clientHeight;
}
//浏览器视口的宽度
function windowWidth() {
  var de = document.documentElement;
  return self.innerWidth || (de && de.clientWidth) || document.body.clientWidth
}
/* 浏览器垂直滚动位置 */
function scrollY() {
  var de = document.documentElement;
  return self.pageYOffset || (de && de.scrollTop) || document.body.scrollTop;
}
/* 浏览器水平滚动位置 */
function scrollX() {
  var de = document.documentElement;
  return self.pageXOffset || (de && de.scrollLeft) || document.body.scrollLeft;
}

补充:

jQuery简单遮罩层插件:

jQuery代码:

(function ($) {
  $.fn.ShowMask = function (options) {
    var defaults = {
      top: 150,
      left: 200
    }
    var options = $.extend(defaults, options);
    $("html").append('<div id="ui-mask"></div><div id="ui-mask-div" style="z-index: 99999;position: fixed;top:' + options.top + 'px;left:' + options.left + 'px;"><img src="Images/ui-loading.gif" alt="" /><span>操作正在进行中,请耐心等待......</span></div>')
    _this_ = $("#ui-mask");
    _this_.height($(document).height())
    _this_.show();
  };
  $.fn.HideMask = function (options) {
    _this_ = $("#ui-mask");
    _this_.remove();
  };
})(jQuery);

css样式:

#ui-mask
{
  background-color: #666;
  position: absolute;
  z-index: 9999;
  left: 0;
  top: 0;
  display: none;
  width: 100%;
  height: 100%;
  opacity: 0.5;
  filter: alpha(opacity=50);
  -moz-opacity: 0.5;
}
#ui-mask-div img
{
  width: 50px;
  height: 50px;
  float: left;
}
#ui-mask-div span
{
  height: 50px;
  line-height: 50px;
  display: block;
  float: left;
  color: Red;
  font-weight: bold;
  margin-left: 5px;
}

使用方法:

function btn_save()
{
  $(this).ShowMask();
  $.post('url',null,function(d,s){
    $(this).HideMask();
  });
}

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

Javascript 相关文章推荐
javascript 时间比较实现代码
Oct 28 Javascript
javascript转换字符串为dom对象(字符串动态创建dom)
May 10 Javascript
js DOM的学习笔记
Dec 22 Javascript
改进版通过Json对象实现深复制的方法
Oct 24 Javascript
Jquery和JS用外部变量获取Ajax返回的参数值的方法实例(超简单)
Jun 17 Javascript
js判断是否为ie的方法小结
Jan 13 Javascript
关闭页面时window.location事件未执行的原因分析及解决方案
Sep 01 Javascript
JS模拟并美化的表单控件完整实例
Aug 19 Javascript
在ES5与ES6环境下处理函数默认参数的实现方法
May 13 Javascript
使用vue-router与v-if实现tab切换遇到的问题及解决方法
Sep 07 Javascript
p5.js实现动态图形临摹
Oct 23 Javascript
在vue中嵌入外部网站的实现
Nov 13 Javascript
jQuery实现的简单提示信息插件
Dec 08 #Javascript
JS组件Bootstrap Table表格多行拖拽效果实现代码
Dec 08 #Javascript
AngularJS实现全选反选功能
Dec 08 #Javascript
JS操作XML实例总结(加载与解析XML文件、字符串)
Dec 08 #Javascript
JS组件Bootstrap Table表格行拖拽效果实现代码
Aug 27 #Javascript
JS获取月份最后天数、最大天数与某日周数的方法
Dec 08 #Javascript
AngularJS Module方法详解
Dec 08 #Javascript
You might like
实战mysql导出中文乱码及phpmyadmin导入中文乱码的解决方法
2010/06/11 PHP
php URL跳转代码 减少外链
2011/06/25 PHP
PHP 魔术变量和魔术函数详解
2015/02/25 PHP
jQuery 操作下拉列表框实现代码
2010/02/22 Javascript
JSCode all of Brower 全局屏蔽网页右键功能 具体实现
2013/06/05 Javascript
JavaScript中的运算符种类及其规则介绍
2013/09/26 Javascript
JavaScript运行机制之事件循环(Event Loop)详解
2014/10/10 Javascript
js实现进度条的方法
2015/02/13 Javascript
浅谈js中几种实用的跨域方法原理详解
2016/12/02 Javascript
使用 Node.js 模拟滑动拼图验证码操作的示例代码
2017/11/02 Javascript
原生JS实现简单的倒计时功能示例
2018/08/30 Javascript
Vue.js 图标选择组件实践详解
2018/12/03 Javascript
在小程序中推送模板消息的实现方法
2019/07/22 Javascript
JavaScript中判断为整数的多种方式及保留两位小数的方法
2019/09/09 Javascript
vue transition 在子组件中失效的解决
2019/11/12 Javascript
JS使用setInterval计时器实现挑战10秒
2020/11/08 Javascript
[57:24]LGD vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
零基础写python爬虫之抓取糗事百科代码分享
2014/11/06 Python
详解Python各大聊天系统的屏蔽脏话功能原理
2016/12/01 Python
Django 中使用流响应处理视频的方法
2018/07/20 Python
对python3 中方法各种参数和返回值详解
2018/12/15 Python
scrapy-redis的安装部署步骤讲解
2019/02/27 Python
Django框架封装外部函数示例
2019/05/28 Python
使用phonegap获取位置信息的实现方法
2017/03/31 HTML / CSS
JSF如何进行表格处理及取值
2012/08/06 面试题
DTD的含义以及作用
2014/01/26 面试题
党员年终民主评议的自我评价
2013/11/05 职场文书
毕业生就业推荐信范文
2013/12/01 职场文书
应届生面试求职信
2014/07/02 职场文书
优秀班集体事迹材料
2014/12/25 职场文书
万能检讨书
2015/01/27 职场文书
小学生教师节广播稿
2015/08/19 职场文书
2016年“抗战胜利纪念日”71周年校园广播稿
2015/12/18 职场文书
JavaScript实现栈结构详细过程
2021/12/06 Javascript
Spring Boot DevTools 全局配置学习指南
2022/03/31 Java/Android
nginx实现多geoserver服务的负载均衡
2022/05/15 Servers