轻量级网页遮罩层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 相关文章推荐
js函数使用技巧之 setTimeout(function(){},0)
Feb 09 Javascript
在js中判断checkboxlist(.net控件客户端id)是否有选中
Apr 11 Javascript
jquery实现邮箱自动补全功能示例分享
Feb 17 Javascript
Javascript WebSocket使用实例介绍(简明入门教程)
Apr 16 Javascript
jQuery判断邮箱格式对错实例代码讲解
Apr 12 jQuery
vue深入解析之render function code详解
Jul 18 Javascript
JavaScript基于面向对象实现的猜拳游戏
Jan 03 Javascript
实例介绍JavaScript中多种组合继承
Jan 20 Javascript
layui框架与SSM前后台交互的方法
Sep 12 Javascript
layer iframe 设置关闭按钮的方法
Sep 12 Javascript
jQuery实现弹幕特效
Nov 29 jQuery
vue实现购物车选择功能
Jan 10 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制作图型计数器的例子
2006/10/09 PHP
动态新闻发布的实现及其技巧
2006/10/09 PHP
基于Windows下Apache PHP5.3.1安装教程
2010/01/08 PHP
php计算数组不为空元素个数的方法
2014/01/27 PHP
PHP+FastCGI+Nginx配置PHP运行环境
2014/08/07 PHP
php实现用已经过去多长时间的方式显示时间
2015/06/05 PHP
Yii针对添加行的增删改查操作示例
2016/10/18 PHP
php实现xml转换数组的方法示例
2017/02/03 PHP
PHP回调函数与匿名函数实例详解
2017/08/16 PHP
超简单的jquery的AJAX用法
2010/05/10 Javascript
js获取某元素的class里面的css属性值代码
2014/01/16 Javascript
一个可以增加和删除行的table并可编辑表格中内容
2014/06/16 Javascript
jQuery实现转动随机数抽奖效果的方法
2015/05/21 Javascript
详解js私有作用域中创建特权方法
2016/01/25 Javascript
jQuery实现表格奇偶行显示不同背景色 就这么简单
2017/03/13 Javascript
详解vue-router 2.0 常用基础知识点之router.push()
2017/05/10 Javascript
NodeJS使用七牛云存储上传文件的方法
2017/07/24 NodeJs
JQuery常用简单动画操作方法回顾与总结
2019/12/07 jQuery
简单讲解Python中的闭包
2015/08/11 Python
python实现发送邮件功能代码
2017/12/14 Python
python将txt文档每行内容循环插入数据库的方法
2018/12/28 Python
Python秒算24点实现及原理详解
2019/07/29 Python
北美大型运动类产品商城:Champs Sports
2017/01/12 全球购物
英国女性时尚鞋类的潮流制造者:Koi Footwear
2018/10/19 全球购物
Coccinelle官网:意大利的著名皮具品牌
2019/05/15 全球购物
统计学专业毕业生的自我评价分享
2013/11/28 职场文书
试用期自我鉴定范文
2014/03/20 职场文书
三问三解心得体会
2014/09/05 职场文书
2014年仓库管理员工作总结
2014/11/18 职场文书
毕业生个人自荐书
2015/03/05 职场文书
Python+腾讯云服务器实现每日自动健康打卡
2021/12/06 Python
JVM的类加载器和双亲委派模式你了解吗
2022/03/13 Java/Android
Mysql事务索引知识汇总
2022/03/17 MySQL
Python中requests库的用法详解
2022/06/05 Python
Python可视化神器pyecharts绘制水球图
2022/07/07 Python
JS前端canvas交互实现拖拽旋转及缩放示例
2022/08/05 Javascript