js工具方法弹出蒙版


Posted in Javascript onMay 08, 2013
//工具方法弹出蒙版 add by dning 2012-11-4
var maskShow = (function () {
    var mask = null;
    var curr = null;
    var free = false;
    var func = {
        onresize: null,
        onscroll: null
    };
    return function (el, fre, Type) {
        if (!mask) {
            initMask();
        }
        free = !!fre;
        if (el == null) {
            show(curr, false);
            show(mask, false);
            showSelects(true); //for ie6
            curr = null;
            if (!free) for (var s in func) {
                window[s] = func[s];
                func[s] = null;
            }
        } else {
            if (curr)
                show(curr, false);
            curr = $(el)[0];
            checkVisib(curr);
            rePos();
            mask.style.zIndex = maskShow.zIndexBack || 15;
            curr.style.zIndex = maskShow.zIndexFore || 20;
            show(curr, true);
            show(mask, true);
            showSelects(false, el); //for ie6
            if (!free) for (var s in func) {
                func[s] = window[s];
                window[s] = rePos;
            }
        }
        if (Type == 0) {
            mask.style.width = document.body.clientWidth + 'px';
            mask.style.height = document.body.clientHeight + 'px';
            if (el) el.style.position = "fixed";
        } else {
            mask.style.width = "0px";
            mask.style.height = "0px";
            if (el) el.style.position = "absolute";
        }
    };
    function showSelects(b, box) {
        if (!browser.IE6) return;
        var sel = document.getElementsByTagName('select');
        var vis = b ? 'visible' : 'hidden';
        for (var i = 0; i < sel.length; i++) {
            if ((b || !childOf(sel[i], box)) && sel[i].currentStyle.visibility != vis) sel[i].style.visibility = vis;
        }
    }
    function childOf(a, b) {
        while (a && a != b) a = a.parentNode;
        return a == b;
    }
    function initMask() {
        /*
        mask=document.createElement('iframe');
        mask.src='://0';
        */
        mask = document.createElement('div');
        mask.style.cssText = 'background-color:{$c};border:none;position:absolute;visibility:hidden;opacity:{$a};filter:alpha(opacity={$A})'.replaceWith({
            c: maskShow.bgColor || '#000',
            a: maskShow.bgAlpha || '0.5',
            A: maskShow.bgAlpha ? parseInt(maskShow.bgAlpha * 100) : '50'
        }); 
        document.body.appendChild(mask);
        maskShow.mask = mask;
    }
    function checkVisib(el) {
        var sty = el.style;
        sty.position = 'absolute';
        sty.left = '-10000px';
        sty.top = '-10000px';
        sty.visibility = 'visible';
        sty.display = 'block';
        sty.zIndex = 10;
    }
    function rePos() {
        if (!curr) return;
        var ps = $pageSize('doc');
        setRect(mask, ps);
        var rc = centerPos(ps, curr.offsetWidth, curr.offsetHeight);
        if (rc.left < ps.scrollLeft) rc.left = ps.scrollLeft;
        if (rc.top < ps.scrollTop) rc.top = ps.scrollTop;
        setRect(curr, rc);
    }
    function centerPos(ps, cw, ch) {
        return {
            left: ((ps.winWidth - cw) >> 1) + ps.scrollLeft + (maskShow.adjustX || 0),
            top: ((ps.winHeight - ch) >> 1) + ps.scrollTop + (maskShow.adjustY || 0)
        };
    }
    function setRect(el, rect) {
        var sty = el.style;
        sty.left = (rect.left || 0) + 'px';
        sty.top = (rect.top || 0) + 'px';
        if ('width' in rect)
            sty.width = rect.width + 'px';
        if ('height' in rect)
            sty.height = rect.height + 'px';
    }
    function show(el, b) {
        if (!el) return;
        el.style.visibility = 'visible';
        if (!b) {
            el.style.left = -el.offsetWidth - 100 + 'px';
            el.style.top = -el.offsetHeight - 100 + 'px';
        }
    }
})();
Javascript 相关文章推荐
JavaScript类和继承 constructor属性
Mar 04 Javascript
Draggable Elements 元素拖拽功能实现代码
Mar 30 Javascript
Javascript开发之三数组对象实例介绍
Nov 12 Javascript
解析瀑布流布局:JS+绝对定位的实现
May 08 Javascript
js获取某元素的class里面的css属性值代码
Jan 16 Javascript
js style动态设置table高度
Oct 21 Javascript
JavaScript中发布/订阅模式的简单实例
Nov 05 Javascript
FF(火狐)浏览器无法执行window.close()解决方案
Nov 13 Javascript
JavaScript实现水平进度条拖拽效果
Jan 18 Javascript
简单谈谈关于 npm 5.0 的新坑
Jun 08 Javascript
mongodb初始化并使用node.js实现mongodb操作封装方法
Apr 02 Javascript
VUE实现Studio管理后台之鼠标拖放改变窗口大小
Mar 04 Javascript
基于JavaScript 声明全局变量的三种方式详解
May 07 #Javascript
你必须知道的JavaScript 变量命名规则详解
May 07 #Javascript
你必须知道的JavaScript 中字符串连接的性能的一些问题
May 07 #Javascript
基于JavaScript实现继承机制之构造函数方法对象冒充的使用详解
May 07 #Javascript
基于JavaScript实现继承机制之调用call()与apply()的方法详解
May 07 #Javascript
JS中的substring和substr函数的区别说明
May 07 #Javascript
js图片自动切换效果处理代码
May 07 #Javascript
You might like
我的论坛源代码(二)
2006/10/09 PHP
php运行出现Call to undefined function curl_init()的解决方法
2010/11/02 PHP
php定义数组和使用示例(php数组的定义方法)
2014/03/29 PHP
PHP实现的简单分页类及用法示例
2016/05/06 PHP
ThinkPHP框架分布式数据库连接方法详解
2017/03/14 PHP
快速实现JS图片懒加载(可视区域加载)示例代码
2017/01/04 Javascript
webpack处理 css\less\sass 样式的方法
2017/08/21 Javascript
vue.js input框之间赋值方法
2018/08/24 Javascript
使用vue完成微信公众号网页小记(推荐)
2019/04/28 Javascript
JS Math对象与Math方法实例小结
2019/07/05 Javascript
Vue.js 无限滚动列表性能优化方案
2019/12/02 Javascript
基于javascript处理nginx请求过程详解
2020/07/07 Javascript
[43:24]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第二场 12.12
2020/12/17 DOTA
python3 实现的人人影视网站自动签到
2016/06/19 Python
Python两个内置函数 locals 和globals(学习笔记)
2016/08/28 Python
Python3如何解决字符编码问题详解
2017/04/23 Python
python使用正则表达式替换匹配成功的组并输出替换的次数
2017/11/22 Python
浅析Python装饰器以及装饰器模式
2018/05/28 Python
python单例模式实例解析
2018/08/28 Python
python进行文件对比的方法
2018/12/24 Python
python基础知识(一)变量与简单数据类型详解
2019/04/17 Python
python框架flask入门之环境搭建及开启调试
2020/06/07 Python
Keras 切换后端方式(Theano和TensorFlow)
2020/06/19 Python
django Model层常用验证器及自定义验证器详解
2020/07/15 Python
python实现每天自动签到领积分的示例代码
2020/08/18 Python
python 如何利用argparse解析命令行参数
2020/09/11 Python
如何用PyPy让你的Python代码运行得更快
2020/12/02 Python
CSS3教程(5):网页背景图片
2009/04/02 HTML / CSS
美国高档帽子网上商店:Hats.com
2018/08/09 全球购物
国际商务专业职业生涯规划书范文
2014/01/17 职场文书
八年级美术教学反思
2014/02/02 职场文书
小学教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
股权转让协议范本
2014/12/07 职场文书
优秀员工推荐材料
2014/12/20 职场文书
运动与健康自我评价
2015/03/09 职场文书
小学英语课教学反思
2016/02/15 职场文书