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 相关文章推荐
jQuery技巧总结
Jan 01 Javascript
JS预览图像将本地图片显示到浏览器上
Aug 25 Javascript
结合JQ1.9通过js正则判断各种浏览器版本的方法
Dec 30 Javascript
改变隐藏的input中value的值代码
Dec 30 Javascript
JS响应鼠标点击实现两个滑块区间拖动效果
Oct 26 Javascript
详解Jquery Easyui的验证扩展
Jan 09 Javascript
JavaScript之DOM插入更新删除_动力节点Java学院整理
Jul 03 Javascript
JS实现简单的选择题测评系统代码思路详解(demo)
Sep 03 Javascript
vue实现验证码输入框组件
Dec 14 Javascript
Vue.js组件实现选项卡以及切换特效
Jul 24 Javascript
js实现无缝轮播图效果
Mar 09 Javascript
详解ES6实现类的私有变量的几种写法
Feb 10 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
php变量作用域的深入解析
2013/06/03 PHP
php生成与读取excel文件
2016/10/14 PHP
PHP实现的MD5结合RSA签名算法实例
2017/10/07 PHP
zeroclipboard复制到剪切板的flash
2010/08/04 Javascript
最短的IE判断代码
2011/03/13 Javascript
jQuery Validate表单验证插件 添加class属性形式的校验
2016/01/18 Javascript
jquery遍历json对象集合详解
2016/05/18 Javascript
深入理解jquery中的事件与动画
2016/05/24 Javascript
vue.js入门教程之绑定class和style样式
2016/09/02 Javascript
Node.js发送HTTP客户端请求并显示响应结果的方法示例
2017/04/12 Javascript
ES6下React组件的写法示例代码
2017/05/04 Javascript
JavaScript创建对象的七种方式全面总结
2017/08/21 Javascript
详解ES6通过WeakMap解决内存泄漏问题
2018/03/09 Javascript
详解Vue一个案例引发「内容分发slot」的最全总结
2018/12/02 Javascript
[02:52]2014DOTA2西雅图国际邀请赛 CIS战队巡礼
2014/07/07 DOTA
[01:05:56]Liquid vs VP Supermajor决赛 BO 第二场 6.10
2018/07/04 DOTA
Python中asyncore异步模块的用法及实现httpclient的实例
2016/06/28 Python
python使用pdfminer解析pdf文件的方法示例
2018/12/20 Python
pandas的连接函数concat()函数的具体使用方法
2019/07/09 Python
torch 中各种图像格式转换的实现方法
2019/12/26 Python
浅谈Python访问MySQL的正确姿势
2020/01/07 Python
Python第三方包之DingDingBot钉钉机器人
2020/04/09 Python
贝尔帐篷精品店:Bell Tent Boutique
2019/06/12 全球购物
出纳岗位职责
2013/11/09 职场文书
委托书模板
2014/04/04 职场文书
《长相思》听课反思
2014/04/10 职场文书
优秀乡村医生事迹材料
2014/05/28 职场文书
中华魂放飞梦想演讲稿
2014/08/26 职场文书
三严三实学习心得体会
2014/10/13 职场文书
党员批评与自我批评发言材料
2014/10/14 职场文书
幼儿园大班见习报告
2014/10/31 职场文书
2014年技术工作总结范文
2014/11/20 职场文书
学校食堂食品安全承诺书
2015/04/29 职场文书
交通事故责任认定书
2015/08/06 职场文书
村官2015年度工作总结
2015/10/14 职场文书
MySQL Innodb关键特性之插入缓冲(insert buffer)
2021/04/08 MySQL