博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Jquery遮罩插件,想罩哪就罩哪!
阅读量:7121 次
发布时间:2019-06-28

本文共 5225 字,大约阅读时间需要 17 分钟。

原文:

一  前言

    在项目开发时发现没有一个用起来 爽一点的遮罩插件,看起来觉得不难 好吧那就利用空闲时间,自己折腾一个吧,也好把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 6            if ($.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 IE            if ($.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 = $("
"); 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 = $("
"); 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("" + opt.text + ""); $("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 = $("
"); 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)

 

插件用法如下

        

 

 

三  总结

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

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

 

下载地址

 

预告: 表动态增加 插件 

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

  

 

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

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

转载地址:http://sxxel.baihongyu.com/

你可能感兴趣的文章
路由器的配置及其功能
查看>>
linux|权限修改chmod和chown
查看>>
Caffe:深入分析(怎么训练)
查看>>
再次深入到ip_conntrack的conntrack full问题
查看>>
linux如何使用find命令查找文件
查看>>
SQL Server 2012 创建数据库快照
查看>>
DNS子域的授权
查看>>
C++鲜为人知的符号
查看>>
隐式游标返回结果
查看>>
继续蹂躏linux
查看>>
Windows Phone 7中的Tombstoning
查看>>
python读写csv文件的实战
查看>>
“开源”创造者为你论述这一术语的前世今生
查看>>
BeanShell脚本接口之this引用接口类型
查看>>
Python安装setuptools遇到的MARKER_EXPR错误
查看>>
python--selenium多线程执行用例实例/执行多个用例
查看>>
PHP与ASP.NET优劣势分析
查看>>
高效率的贪吃蛇-Java实现
查看>>
red hat enterprise linux 5.4 下安装mysql5.6.10
查看>>
c# asp.net 用户注册流程图(7)
查看>>