轻量级网页遮罩层jQuery插件用法实例


Posted in Javascript onJuly 31, 2015

本文实例讲述了轻量级网页遮罩层jQuery插件用法。分享给大家供大家参考。具体如下:

使用jQuery的好处是很多人为它写一些组件,而在项目所需用到功能也都可以找到一些组件去完成。

现在又这样一个需求当用户点击一个按钮后不允许用户进行任何的操作,取而代之的是弹出一个遮罩层显示一个loading提示框,效果如下。

轻量级网页遮罩层jQuery插件用法实例

其实这个需求很简单,但很多组件体积相对这个需求来说太大了,在网上瞎溜达了找到了一个还不错的组件,作者是上面也没有写。现在就来分析一下这个组件的源码和使用

/**
 * @部分参数说明
 */
(function($){
 $.fn.extend({
  //主函数
  toggleLoading: function(options){
      // 找到遮罩层
    var crust = this.children(".x-loading-wanghe");
      // 当前操作的元素
      var thisjQuery = this;
      // 实现toogle(切换遮罩层出现与消失)效果的判断方法
    if(crust.length>0){
      if(crust.is(":visible")){
        crust.fadeOut(500);
      }else{
        crust.fadeIn(500);
      }
      return this;
    }
   // 扩展参数
   var op = $.extend({
    z: 9999,
    msg:'数据加载中...',
    iconUrl:'images/loading.gif',
    width:18,
    height:18,
    borderColor:'#6bc4f5',
    opacity:0.5,
        agentW:thisjQuery.outerWidth(),
        agentH:thisjQuery.outerHeight()
   },options);
   if(thisjQuery.css("position")=="static")
     thisjQuery.css("position","relative");
   //var w = thisjQuery.outerWidth(),h = thisjQuery.outerHeight();
   var w = op.agentW,h = op.agentH;
   crust = $("<div></div>").css({//外壳
    'position': 'absolute',
    'z-index': op.z,
    'display':'none',
    'width':w+'px',
    'height':h+'px',
    'text-align':'center',
    'top': '0px',
    'left': '0px',
    'font-family':'arial',
    'font-size':'12px',
    'font-weight':'500'
   }).attr("class","x-loading-wanghe");
   var mask = $("<div></div>").css({//蒙版
    'position': 'absolute',
    'z-index': op.z+1,
    'width':'100%',
    'height':'100%',
    'background-color':'#333333',
    'top': '0px',
    'left': '0px',
    'opacity':op.opacity
   });
   //71abc6,89d3f8,6bc4f5
   var msgCrust = $("<span></span>").css({//消息外壳
      'position': 'relative',
        'top': (h-30)/2+'px',
      'z-index': op.z+2,
      'height':'24px',
      'display':'inline-block',
      'background-color':'#cadbe6',
      'padding':'2px',
      'color':'#000000',
      'border':'1px solid '+op.borderColor,
      'text-align':'left',
      'opacity':0.9
     });
   var msg = $("<span>"+op.msg+"</span>").css({//消息主体
       'position': 'relative',
       'margin': '0px',
      'z-index': op.z+3,
      'line-height':'22px',
      'height':'22px',
      'display':'inline-block',
      'background-color':'#efefef',
      'padding-left':'25px',
      'padding-right':'5px',
      'border':'1px solid '+op.borderColor,
      'text-align':'left',
      'text-indent':'0'
     });
      var msgIcon = $("<img src="+op.iconUrl+" />").css({//图标
      'position': 'absolute',
      'top': '3px',
      'left':'3px',
      'z-index': op.z+4,
      'width':'18px',
      'height':'18px'
     });  
      // 拼装遮罩层
   msg.prepend(msgIcon);
    msgCrust.prepend(msg);
    crust.prepend(mask);
    crust.prepend(msgCrust);
   thisjQuery.prepend(crust);
     // alert(thisjQuery.html());
   crust.fadeIn(500);
   //模态设置
   return this;
  }
 });
})(jQuery);

相关配置

配置&configure


全部配置 默认值 说明
z: 9999 图层z-index,当蒙版遮罩不住时候适当增大其值
msg: 数据加载中... 提示信息
iconUrl: images/loading.gif 提示图片url
height: 18 图标默认高(px)
width: 18 图标默认宽(px)
borderColor #6bc4f5 提示的边框颜色
opacity: 0.5 蒙版的透明度
agentW: 当前元素的宽度 蒙版的宽度
agentH: 当前元素的高度 蒙版的高度

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

Javascript 相关文章推荐
基于Jquery的动态添加控件并取值的实现代码
Sep 24 Javascript
JavaScript学习笔记之数组去重
Mar 23 Javascript
使用RequireJS库加载JavaScript模块的实例教程
Jun 06 Javascript
深入分析javascript中console命令
Aug 14 Javascript
Angular2表单自定义验证器的实现
Oct 19 Javascript
关于vue.js过渡css类名的理解(推荐)
Apr 10 Javascript
vue实现树形菜单效果
Mar 19 Javascript
微信小程序画布圆形进度条显示效果
Nov 17 Javascript
layui扩展上传组件模拟进度条的方法
Sep 23 Javascript
JavaScript实现好看的跟随彩色气泡效果
Feb 06 Javascript
jdk1.8+vue elementui实现多级菜单功能
Sep 24 Javascript
antd日期选择器禁止选择当天之前的时间操作
Oct 29 Javascript
js实时获取并显示当前时间的方法
Jul 31 #Javascript
Javascript实现的Map集合工具类完整实例
Jul 31 #Javascript
JS特效实现图片自动播放并可控的效果
Jul 31 #Javascript
javascript实现列表滚动的方法
Jul 30 #Javascript
百度地图API之本地搜索与范围搜索
Jul 30 #Javascript
javaScript实现滚动新闻的方法
Jul 30 #Javascript
javascript中递归函数用法注意点
Jul 30 #Javascript
You might like
全国FM电台频率大全 - 11 浙江省
2020/03/11 无线电
php cli 小技巧
2013/06/03 PHP
PHP中上传多个文件的表单设计例子
2014/11/19 PHP
PHP静态成员变量
2017/02/14 PHP
php常用经典函数集锦【数组、字符串、栈、队列、排序等】
2019/08/23 PHP
关于laravel 子查询 &amp; join的使用
2019/10/16 PHP
javascript getElementsByClassName 和js取地址栏参数
2010/01/02 Javascript
jQuery的一些特性和用法整理小结
2010/01/13 Javascript
JQUERY设置IFRAME的SRC值的代码
2010/11/30 Javascript
VBS通过WMI监视注册表变动的代码
2011/10/27 Javascript
xml转json的js代码
2012/08/28 Javascript
基于IE下ul li 互相嵌套时的bug,排查,解决过程以及心得介绍
2013/05/07 Javascript
js function定义函数的几种不错方法
2014/02/27 Javascript
JS对文本框值的判断示例
2014/03/10 Javascript
ff chrome和ie下全局动态定位的异同及全局高度的取法
2014/06/30 Javascript
分类解析jQuery选择器
2016/11/23 Javascript
JavaScript之filter_动力节点Java学院整理
2017/06/28 Javascript
AngularJs每天学习之总体介绍
2017/08/07 Javascript
解决Vue 项目打包后favicon无法正常显示的问题
2018/09/01 Javascript
tracking.js实现前端人脸识别功能
2020/04/16 Javascript
使用Element的InfiniteScroll 无限滚动组件报错的解决
2020/07/27 Javascript
[11:01]2014DOTA2西雅图邀请赛 冷冷带你探秘威斯汀
2014/07/08 DOTA
Python接收Gmail新邮件并发送到gtalk的方法
2015/03/10 Python
python 3.0 模拟用户登录功能并实现三次错误锁定
2017/11/01 Python
Python3实现计算两个数组的交集算法示例
2019/04/03 Python
python opencv鼠标事件实现画框圈定目标获取坐标信息
2020/04/18 Python
Python实现把多维数组展开成DataFrame
2019/11/30 Python
python误差棒图errorbar()函数实例解析
2020/02/11 Python
css3.0新属性效果在ie下的解决方案
2010/05/10 HTML / CSS
世界排名第一的万圣节服装店:Spirit Halloween
2018/10/16 全球购物
电子商务专业实习生自我鉴定
2013/09/24 职场文书
火锅店创业计划书范文
2014/02/02 职场文书
高中运动会前导词
2015/07/20 职场文书
2016大一新生入学教育心得体会
2016/01/23 职场文书
大学生村官工作心得体会
2016/01/23 职场文书
为什么RedisCluster设计成16384个槽
2021/09/25 Redis