原文:Jquery遮罩插件,想罩哪就罩哪!

一  前言

在项目开发时发现没有一个用起来 爽一点的遮罩插件,看起来觉得不难 好吧那就利用空闲时间,自己折腾一个吧,也好把jquery再温习一下,

需要的功能如下

  1 可以全屏遮 用于提交数据时

  2  局部遮,用于重复提交,只遮提交按钮,此功能当时在CSDN的登录中看到过,当时觉得还不错

3  遮罩上的提示文字可自己配置,因为操作的业务场景不一样,提示的信息肯定也会不一样

4  遮罩图片可配置,

5 信息提示层大小可配置

大致功能就如上几点,然后就是折腾js了,蹭蹭蹭~~~~ 然后就出来了~ 先上效果

全局遮罩效果 

局部遮罩

二 源码相关

需要了解的知识点大致如下

1 z-index属性

2 position属性

3 浏览器窗口与document 高宽的计算

4 jquery 插件格式

5 css 滤镜效果

不多说了上代码!为了减少引入的文件索性将css直接写在js中了

/**************************
*Desc:提交操作时遮罩
*Argument:type=0 全屏遮 1局部遮
*Author:Zery-Zhang
*Date:2014-09-18
*Version:1.0.0
**************************/
; (function ($) { $.fn.jqLoading =function(option) {var defaultVal = {backgroudColor: "#ECECEC",//背景色backgroundImage: "../image/loading.gif",//背景图片text: "玩命加载中....",//文字 width: 150,//宽度height: 60,//高度type:0 //0全部遮,1 局部遮
            };var opt = $.extend({}, defaultVal, option);if (opt.type == 0) {//全屏遮
            openLayer();} else {//局部遮(当前对象应为需要被遮挡的对象)openPartialLayer(this);}//销毁对象if (option === "destroy") {closeLayer();}//设置背景层高function height () {var scrollHeight, offsetHeight;// handle IE 6if ($.browser.msie && $.browser.version < 7) {scrollHeight = Math.max(document.documentElement.scrollHeight, document.body.scrollHeight);offsetHeight = Math.max(document.documentElement.offsetHeight, document.body.offsetHeight);if (scrollHeight < offsetHeight) {return $(window).height();} else {return scrollHeight;}// handle "good" browsers
            }else if ($.browser.msie && $.browser.version == 8) {return $(document).height() - 4;}else {return $(document).height();}};//设置背景层宽function width() {var scrollWidth, offsetWidth;// handle IEif ($.browser.msie) {scrollWidth = Math.max(document.documentElement.scrollWidth, document.body.scrollWidth);offsetWidth = Math.max(document.documentElement.offsetWidth, document.body.offsetWidth);if (scrollWidth < offsetWidth) {return $(window).width();} else {return scrollWidth;}// handle "good" browsers
            }else {return $(document).width();}};/*==========全部遮罩=========*/function openLayer() {//背景遮罩层var layer = $("<div id='layer'></div>");layer.css({zIndex:9998,position: "absolute",height: height() + "px",width: width() + "px",background: "black",top: 0,left: 0,filter: "alpha(opacity=30)",opacity: 0.3});//图片及文字层var content = $("<div id='content'></div>");content.css({textAlign: "left",position:"absolute",zIndex: 9999,height: opt.height + "px",width: opt.width + "px",top: "50%",left: "50%",verticalAlign: "middle",background: opt.backgroudColor,borderRadius:"8px",fontSize:"13px"});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>");$("body").append(layer).append(content);var top = content.css("top").replace('px','');var left = content.css("left").replace('px','');content.css("top",(parseFloat(top)-opt.height/2)).css("left",(parseFloat(left)-opt.width/2));return this;}//销毁对象function closeLayer() {$("#layer,#content,#partialLayer").remove();return this;}/*==========局部遮罩=========*/function openPartialLayer(obj) {var eheight = $(obj).css("height");//元素带px的高宽度var ewidth = $(obj).css("width");var top = $(obj).offset().top; // 元素在文档中位置 滚动条不影响var left = $(obj).offset().left;var layer = $("<div id='partialLayer'></div>");layer.css({style: 'z-index:9998',position: "absolute",height: eheight,width: ewidth,background: "black",top: top,left: left,filter: "alpha(opacity=60)",opacity: 0.6,borderRadius:"3px",dispaly: "block"});$("body").append(layer);return this;}};})(jQuery)

插件用法如下

    <input  type="button" id="btnOpen" value="打开" /><input type="button" id="btnClose" value="关闭" /><script type="text/javascript">$(function () {$("#btnOpen").on("click", function () {//全局//$(this).jqLoading();//局部
                $(this).jqLoading({ type: 1 });});$("#btnClose").on("click", function () {$(this).jqLoading("destroy");});})</script>

三  总结

  以上代码只为自己练习所用,如果碰巧能被人所用,那纯属巧合~

我个人很享受,由构思到成品 这一过程,并一直努力将自己的一些想法,用代码慢慢实现。

下载地址:http://files.cnblogs.com/zery/jqLoding.rar

预告: 表动态增加 插件 

  下一篇将介绍自己在实际项目中用到的表格动态增加,删除,取数据,绑定数据 ,数据校验等 先上个图

  

如果您觉得本文有给您带来一点收获,不妨点个推荐,为我的付出支持一下,谢谢~

如果希望在技术的道路上能有更多的朋友,那就关注下我吧,让我们一起在技术的路上奔跑

Jquery遮罩插件,想罩哪就罩哪!相关推荐

  1. jQuery遮罩插件jQuery.blockUI.js简介

    概述: jQuery BlockUI插件可以在不锁定浏览器的同时,模拟同步模式下发起Ajax请求的行为.该插件激活时,会阻止用户在页面进行的操作,直到插件被关闭.BlockUI通过向DOM中添加元素实 ...

  2. jQuery BlockUI 插件(遮罩层)

    部分效果 概述 当使用AJAX时,jQuery BlockUI插件可以模拟同步行为,并且不会锁定浏览器.一旦被激活,它便会防止页面上(或页面的一部分)用户的操作,直到被停用.BlockUI给DOM带来 ...

  3. 超强的jquery极品插件--色彩选择器类/ 右键菜单类/ 图片新闻flash展示类

    Farbtastic Farbtastic是一个color picker插件.它能够在一个页面中加入多个颜色选择控件,然后每个控件关联到页面中的一个元素比如:文本输入框. Farbtastic jQu ...

  4. 超强1000个jquery极品插件!(连载中。。。。最近更新20090710)

    花N长时间积累的Jquery插件,希望大家喜欢.大家还有什么新的插件,请留言,我们一并收录. 感谢大家的支持. ++++++++++++++++++++++++++++++++++++++++++++ ...

  5. layer之jquery 弹窗插件 (最后版本v1.8.5)

    转载自 jquery 弹窗插件 layer jquery.layer版本(v1.8.5)下载地址 注意:v1.8.5后改版移除各种API,构造方法改版 <!DOCTYPE html PUBLIC ...

  6. 超强1000个jquery极品插件!(感觉好强大,转载一下)

    花N长时间积累的Jquery插件,希望大家喜欢.大家还有什么新的插件,请留言,我们一并收录. 感谢大家的支持. ++++++++++++++++++++++++++++++++++++++++++++ ...

  7. 超强1000个jquery极品插件!

    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ accordion类 +++++++++++++ ...

  8. 开发人员应该知道的15个吸引力的jquery lightbox插件推荐

    jQuery 是非常流行的JS框架,其俨然已成了开发者的必备工具,其中的jQuery Lightbox插件更是为广大开发者所喜爱.它惊人的特征之一是jQuery Lightbox插件有很多变化.你可以 ...

  9. 超强1000个jquery极品插件!(连载中。。。。最近更新20100127)

    1.导航类 (1) Horizontal accordion: jQuery 基于jQuery开发,非常简单的水平方向折叠控件. 二手图书 二手书 特价书 旧书网 (2)jQuery-Horizont ...

最新文章

  1. python 英文字符频率统计 采用降序方式输出_Python读取英文文件并记录每个单词出现次数后降序输出示例...
  2. Tomcat - 都说Tomcat违背了双亲委派机制,到底对不对?
  3. Overload 和Override 的区别
  4. OpenCV提炼角点位置的实例(附完整代码)
  5. [湖南师大集训2018 7 26] hunger 解题报告 (SPFA)
  6. 支撑全网70%世界杯流量 盘点世界杯直播背后的阿里云黑科技
  7. linux vi编辑撤销,vi撤销命令(u和U),撤销上一次的操作
  8. Linux设备驱动之字符设备(二)
  9. 惠普1020打印机查看已打印页数
  10. 程序员职场-三人行,必有我师
  11. 苹果电子邮件怎么注册_无需购买 iPhone,可以使用哪些苹果的优质服务?
  12. Java程序基础——异常
  13. 一篇今日头条百万阅读量爆文怎么来的,自媒体月收入暴涨10万+
  14. HDMI_CS4344调试说明
  15. Excel阅读器NPOI
  16. 紫书 习题 11-12 UVa 1665 (并查集维护联通分量)
  17. 如何比较好的规避拼多多纠纷退款的技巧?天创速盈来说
  18. python面试常问
  19. 帝国cms e loop php,帝国CMS灵动标签e:loop的一些用法
  20. 【3月比赛合集】45场可报名的数据挖掘奖金赛,任君挑选!

热门文章

  1. 云从科技宣布B+轮融资,多家国有基金入股,累计获资35亿元
  2. 猿辅导MSMARCO冠军团队:用MARS模型解决机器阅读任务 | 吃瓜笔记
  3. 旷视科技Face++进军机器人业务
  4. 宽凳科技,这是前百度外卖董事长刘骏的新征途
  5. 一样的打游戏,不一样的酷
  6. 波士顿动力新机器人登场!
  7. 霍金这次想帮AI说点好话,后来没忍住……
  8. stage3图书管理系统服务器部署
  9. 文件夹快速访问工具-Default Folder X
  10. 完整教程--idea使用git进行项目管理