js工具方法弹出蒙版_Javascript教程-查字典教程网
js工具方法弹出蒙版
js工具方法弹出蒙版
发布时间:2016-12-30 来源:查字典编辑
摘要:复制代码代码如下://工具方法弹出蒙版addbydning2012-11-4varmaskShow=(function(){varmask=...

复制代码 代码如下:

//工具方法弹出蒙版 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教程学习
    编程开发子分类