遮罩插件

  1 /* 遮罩插件
  2  * 可选选项
  3  * smBoxBg 小方格遮罩颜色 默认 #FFFFFF
  4  * backgroudColor 大遮罩颜色   默认  #000000
  5  * backgroundImage 动态图片  默认 loading.gif
  6  * text 文字信息  默认  加载中....
  7  * opacity:0.6 大遮罩透明度 默认 0.6
  8  * */
  9 /*
 10  使用demo
 11              $("body").setLoading("body")
 12             setTimeout(function (){
 13                 $("body").rmoveLoading ("body")
 14             },5000)
 15             //====================================
 16             // 设置其他参数id必须传
 17             $("body").setLoading({
 18                 id:"body"
 19             })
 20             setTimeout(function (){
 21                 $("body").rmoveLoading ("body")
 22             },5000)
 23  * */
 24 
 25 ;
 26 (function($) {
 27     $.fn.setLoading = function(option) {
 28         var defaultVal = {
 29                 smBoxBg: "#FFFFFF",
 30                 backgroudColor: "#CCCCCC", //背景色
 31                 backgroundImage: "data:image/gif;base64,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", //背景图片
 32                 text: "加载中....", //文字 
 33                 width: 150, //宽度
 34                 height: 60, //高度
 35                 type: 1, //0全部遮,1 局部遮
 36                 opacity: 0.5
 37             },
 38             opt;
 39 
 40         if(defaultVal.backgroudColor.charAt(0) == "#") {
 41             var NOcolor = defaultVal.backgroudColor.substring(1, 7),
 42                 R = parseInt(NOcolor.substring(0, 2), 16),
 43                 G = parseInt(NOcolor.substring(2, 4), 16),
 44                 B = parseInt(NOcolor.substring(4, 6), 16);
 45             defaultVal.rgba = "rgba(" + R + "," + G + "," + B + "," + defaultVal.opacity + ")"
 46         } else {
 47             defaultVal.rgba = defaultVal.backgroudColor
 48         }
 49 
 50         if(typeof option == "string") {
 51             opt = $.extend({}, defaultVal, {
 52                 id: option
 53             });
 54         } else {
 55             opt = $.extend({}, defaultVal, option);
 56         }
 57 
 58         if(opt.id === undefined) {
 59             throw new Error("name 未定义");
 60         } else {
 61             openPartialLayer(this, opt);
 62         }
 63 
 64         //遮罩
 65         function openPartialLayer(obj, opt) {
 66             var eheight, ewidth, top, left, layer, content;
 67             if(opt.id == "body") {
 68                 eheight = "100%"
 69                 ewidth = "100%"
 70             } else {
 71                 eheight = $(obj).css("height"); //元素带px的高宽度
 72                 ewidth = $(obj).css("width");
 73             }
 74             top = $(obj).offset().top; // 元素在文档中位置 滚动条不影响
 75             left = $(obj).offset().left;
 76             layer = $("<div id=" + opt.id + "></div>");
 77             layer.css({
 78                 style: 'z-index:555',
 79                 position: "absolute",
 80                 height: eheight,
 81                 width: ewidth,
 82                 background: opt.rgba,
 83                 top: top,
 84                 left: left,
 85                 borderRadius: "3px",
 86                 display: "-webkit-flex",
 87                 display: "flex",
 88                 justifyContent: "center",
 89                 alignItems: "center"
 90             });
 91             if(opt.id == "body") {
 92                 layer.css({
 93                     height: "100%",
 94                     width: "100%"
 95                 })
 96             }
 97             content = $("<div id='content'></div>");
 98             content.css({
 99                 textAlign: "left",
100                 position: "absolute",
101                 zIndex: 9999,
102                 height: opt.height + "px",
103                 width: opt.width + "px",
104                 verticalAlign: "middle",
105                 background: opt.smBoxBg,
106                 borderRadius: "8px",
107                 fontSize: "13px"
108             });
109             content.append("<img style='vertical-align:middle;margin:" + (opt.height / 4) + "px; 0 0 5px;margin-right:5px;' src='" + opt.backgroundImage + "' /><span style='text-align:center; vertical-align:middle;'>" + opt.text + "</span>")
110             layer.append(content)
111             $("body").append(layer);
112             return this;
113         }
114     };
115     $.fn.rmoveLoading = function(id) {
116         if(typeof id == "string") {
117             $("#" + id).remove();
118             return this;
119         }
120     }
121 })(jQuery)
posted @ 2017-05-08 13:48  微微笑~  阅读(371)  评论(1)    收藏  举报