您好,欢迎访问一九零五行业门户网

js工具方法弹出蒙版_javascript技巧

复制代码 代码如下:
//工具方法弹出蒙版 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             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         if (rc.top         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';
        }
    }
})();
其它类似信息

推荐信息