轻量级网页遮罩层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 相关文章推荐
选择TreeView控件的树状数据节点的JS方法(jquery)
Feb 06 Javascript
jquery 获取自定义属性(attr和prop)的实现代码
Jun 27 Javascript
JS完整获取IE浏览器信息包括类型、版本、语言等等
May 22 Javascript
js+canvas绘制五角星的方法
Jan 28 Javascript
使用vue.js制作分页组件
Jun 27 Javascript
JS中使用FormData上传文件、图片的方法
Aug 07 Javascript
webpack 单独打包指定JS文件的方法
Feb 22 Javascript
vue点击标签切换选中及互相排斥操作
Jul 17 Javascript
JS操作JSON常用方法(10w阅读)
Dec 06 Javascript
js 执行上下文和作用域的相关总结
Feb 08 Javascript
jquery插件实现搜索历史
Apr 24 jQuery
JavaScript实现简单拖拽效果
Sep 15 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
php下封装较好的数字分页方法
2010/11/23 PHP
JavaScript中的函数的两种定义方式和函数变量赋值
2014/05/12 Javascript
JavaScript输出当前时间Unix时间戳的方法
2015/04/06 Javascript
JQuery中DOM加载与事件执行实例分析
2015/06/13 Javascript
基于javascript实现的快速排序
2016/12/02 Javascript
Javascript highcharts 饼图显示数量和百分比实例代码
2016/12/06 Javascript
js实现拖拽上传图片功能
2017/08/01 Javascript
小程序最新获取用户昵称和头像的方法总结
2019/09/23 Javascript
Vue父子之间值传递的实例教程
2020/07/02 Javascript
JS继承实现方法及优缺点详解
2020/09/02 Javascript
Python二维码生成库qrcode安装和使用示例
2014/12/16 Python
Python 多线程抓取图片效率对比
2016/02/27 Python
Python数据结构与算法之图的广度优先与深度优先搜索算法示例
2017/12/14 Python
python将每个单词按空格分开并保存到文件中
2018/03/19 Python
使用pandas对矢量化数据进行替换处理的方法
2018/04/11 Python
python处理“
2019/06/10 Python
浅谈python 中类属性共享的问题
2019/07/02 Python
python使用多线程编写tcp客户端程序
2019/09/02 Python
Pytorch自己加载单通道图片用作数据集训练的实例
2020/01/18 Python
python如何进行矩阵运算
2020/06/05 Python
基于Python组装jmx并调用JMeter实现压力测试
2020/11/03 Python
Python中过滤字符串列表的方法
2020/12/22 Python
Html5 滚动穿透的方法
2019/05/13 HTML / CSS
Gibson London官网:以地道的英国男装而著称
2019/12/06 全球购物
高中微机老师自我鉴定
2014/02/16 职场文书
2014厂务公开实施方案
2014/02/17 职场文书
设计师求职信模板
2014/05/06 职场文书
2014年党员自我评议总结
2014/09/23 职场文书
财务助理岗位职责范本
2014/10/09 职场文书
幼儿园六一儿童节主持词
2015/06/30 职场文书
毕业班班主任工作总结2015
2015/07/23 职场文书
祝福语集锦:给满月宝宝的祝福语
2019/11/20 职场文书
vue实现可拖拽的dialog弹框
2021/05/13 Vue.js
python办公自动化之excel的操作
2021/05/23 Python
MySQL学习必备条件查询数据
2022/03/25 MySQL
利用Python将list列表写入文件并读取的方法汇总
2022/03/25 Python