• js弹出蒙版


    //工具方法弹出蒙版 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';
            }
        }
    })();

    作者:Tyler Ning
    出处:http://www.cnblogs.com/tylerdonet/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,请微信联系冬天里的一把火

  • 相关阅读:
    数据库事务隔离级别-- 脏读、幻读、不可重复读
    【洛谷7518】[省选联考 2021 A/B 卷] 宝石(树上倍增+并查集)
    【CF666D】Chain Reaction(暴搜+细节讨论)
    【洛谷5064】[Ynoi2014] 等这场战争结束之后(操作树+值域分块)
    【洛谷7437】既见君子(状压+矩阵树定理)
    【洛谷5046】[Ynoi2019 模拟赛] Yuno loves sqrt technology I(分块)
    【LOJ2462】「2018 集训队互测 Day 1」完美的集合(树上连通块问题+扩展卢卡斯)
    【洛谷4339】[ZJOI2018] 迷宫(神仙题)
    【CF639E】Bear and Paradox(贪心+二分)
    【洛谷5444】[APIO2019] 奇怪装置(数论)
  • 原文地址:https://www.cnblogs.com/tylerdonet/p/2754223.html
Copyright © 2020-2023  润新知