轻量级网页遮罩层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 相关文章推荐
静态图片的十一种滤镜效果--不支持Ie7及非IE浏览器。
Mar 06 Javascript
setTimeout的延时为0时多个浏览器的区别
May 23 Javascript
jquery重复提交请求的原因浅析
May 23 Javascript
JavaScript访问CSS属性的几种方式介绍
Jul 21 Javascript
express的中间件bodyParser详解
Dec 04 Javascript
利用webstrom调试Vue.js单页面程序的方法教程
Jun 06 Javascript
jQuery实现点击DIV同时点击CheckBox,并为DIV上背景色的实例
Dec 18 jQuery
vue.js整合mint-ui里的轮播图实例代码
Dec 27 Javascript
Electron 如何调用本地模块的方法
Feb 01 Javascript
vue cli3适配所有端方案的实现
Apr 13 Javascript
webpack+express实现文件精确缓存的示例代码
Jun 11 Javascript
浅谈JavaScript作用域
Dec 06 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模拟HTTP认证
2006/10/09 PHP
php数组函数序列之array_pop() - 删除数组中的最后一个元素
2011/11/07 PHP
PHP实现PDO的mysql数据库操作类
2014/12/12 PHP
PHP编程实现脚本异步执行的方法
2017/08/09 PHP
javascript 使用 NodeList需要注意的问题
2013/03/04 Javascript
javascript删除option选项的多种方法总结
2013/11/22 Javascript
jQuery遍历对象、数组、集合实例
2014/11/08 Javascript
谈谈AngularJs中的隐藏和显示
2015/12/09 Javascript
bootstrap滚动监控器使用方法解析
2017/01/13 Javascript
微信小程序wx.previewImage预览图片实例详解
2017/12/07 Javascript
在vue组件中使用axios的方法
2018/03/16 Javascript
vue.js实现点击后动态添加class及删除同级class的实现代码
2018/04/04 Javascript
微信公众号H5支付接口调用方法
2019/01/10 Javascript
Python IDE PyCharm的基本快捷键和配置简介
2015/11/04 Python
django文档学习之applications使用详解
2018/01/29 Python
Python2.7实现多进程下开发多线程示例
2019/05/31 Python
python f-string式格式化听语音流程讲解
2019/06/18 Python
python实现文件批量编码转换及注意事项
2019/10/14 Python
python绘制动态曲线教程
2020/02/24 Python
django模型动态修改参数,增加 filter 字段的方式
2020/03/16 Python
keras处理欠拟合和过拟合的实例讲解
2020/05/25 Python
Python如何把十进制数转换成ip地址
2020/05/25 Python
python中os包的用法
2020/06/01 Python
Python类super()及私有属性原理解析
2020/06/15 Python
浅谈django框架集成swagger以及自定义参数问题
2020/07/07 Python
香港化妆品经销商:我的公主
2016/08/05 全球购物
日本乐天德国站:Rakuten.de
2019/05/16 全球购物
2014学雷锋活动心得体会
2014/03/10 职场文书
2014教育局对照检查材料思想汇报
2014/09/23 职场文书
万能检讨书
2015/01/27 职场文书
党支部创先争优公开承诺书
2015/04/30 职场文书
团日活动总结格式
2015/05/11 职场文书
高中化学教学反思
2016/02/22 职场文书
Java实现学生管理系统(IO版)
2022/02/24 Java/Android
MySQL数据库简介与基本操作
2022/05/30 MySQL
TS 类型兼容教程示例详解
2022/09/23 Javascript