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 相关文章推荐
User Scripts: Video Download by User Scripts
May 14 Javascript
JSON扫盲帖 JSON.as类教程
Feb 16 Javascript
jquery 分页控件实现代码
Nov 30 Javascript
jQuery操作Select选择的Text和Value(获取/设置/添加/删除)
Mar 06 Javascript
Egret引擎开发指南之运行项目
Sep 03 Javascript
javascript原型模式用法实例详解
Jun 04 Javascript
javascript中的正则表达式使用详解
Aug 30 Javascript
基于Flowplayer打造一款免费的WEB视频播放器附源码
Sep 06 Javascript
javascript匀速运动实现方法分析
Jan 08 Javascript
jQuery基于ajax方式实现用户名存在性检查功能示例
Feb 10 Javascript
JS 实现百度搜索功能
Feb 01 Javascript
jQuery实现DIV响应鼠标滑过由下向上展开效果示例【测试可用】
Apr 26 jQuery
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
2020年4月新番动漫目录 官方宣布4月播出的作品一览
2020/03/08 日漫
php date与gmdate的获取日期的区别
2010/02/08 PHP
PHP函数func_num_args用法实例分析
2015/12/07 PHP
PHP进程通信基础之信号
2017/02/19 PHP
php中bind_param()函数用法分析
2017/03/28 PHP
php文件上传及下载附带显示文件及目录功能
2017/04/27 PHP
PHP的微信支付接口使用方法讲解
2019/03/08 PHP
JavaScript 实现??打印?理
2007/04/28 Javascript
JavaScript高级程序设计 阅读笔记(二十一) JavaScript中的XML
2012/09/14 Javascript
让你的博客飘雪花超出屏幕依然看得见
2013/01/04 Javascript
等待指定时间后自动跳转或关闭当前页面的js代码
2013/07/09 Javascript
JS鼠标滑过图片时切换图片实现思路
2013/09/12 Javascript
JS模拟实现Select效果代码
2015/09/24 Javascript
详解微信小程序开发之下拉刷新 上拉加载
2016/11/24 Javascript
详解NodeJs支付宝移动支付签名及验签
2017/01/06 NodeJs
微信小程序中用WebStorm使用LESS
2017/03/08 Javascript
微信小程序开发之路由切换页面重定向问题
2018/09/18 Javascript
使用gulp构建前端自动化的方法示例
2018/12/25 Javascript
javascript+HTML5 canvas绘制时钟功能示例
2019/05/15 Javascript
解决Layui数据表格显示无数据提示的问题
2019/11/14 Javascript
解决idea开发遇到javascript动态添加html元素时中文乱码的问题
2020/09/29 Javascript
Mac 上切换Python多版本
2017/06/17 Python
TensorFlow 滑动平均的示例代码
2018/06/19 Python
PyQt5实现让QScrollArea支持鼠标拖动的操作方法
2019/06/19 Python
python验证码图片处理(二值化)
2019/11/01 Python
python温度转换华氏温度实现代码
2020/12/06 Python
美国宠物美容和宠物用品购物网站:Cherrybrook
2018/12/07 全球购物
秋季运动会广播稿大全
2014/02/17 职场文书
2015年元旦活动总结
2014/05/09 职场文书
机电专业毕业生自我鉴定2014
2014/10/04 职场文书
迎新生标语大全
2014/10/06 职场文书
2014年教育培训工作总结
2014/12/08 职场文书
淮海战役观后感
2015/06/11 职场文书
Anaconda配置各版本Pytorch的实现
2021/08/07 Python
JavaScript原型链详解
2021/11/07 Javascript
pnpm对npm及yarn降维打击详解
2022/08/05 Javascript