手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >js工具方法弹出蒙版
js工具方法弹出蒙版
摘要:复制代码代码如下://工具方法弹出蒙版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';

}

}

})();

【js工具方法弹出蒙版】相关文章:

js比较日期大小的方法

nodejs实现获取某宝商品分类

jQuery实现首页图片淡入淡出效果的方法

js实现div层缓慢收缩与展开的方法

js跨域请求的5中解决方式

javascript实现树形菜单的方法

jquery实现图片左右切换的方法

jquery实现弹出层效果实例

javascript实现行拖动的方法

javascript常用的方法分享

精品推荐
分类导航