弹出层效果,背景变暗


我把js做成一个文件保存为msg.js文件:

代码如下:


//
 JavaScript Document


var
 isIe
=
(document.all)
?
true
:
false


//
设置select的可见状态 


function
 setSelectState(state) 



var objl=document.getElementsByTagName(select); 
for(var i=0;i<objl.length;i++

objl[i].style.visibility
=state; 
}
 
}

 

function
 mousePosition(ev) 



if(ev.pageX || ev.pageY) 

return {x:ev.pageX, y:ev.pageY}
}
 
return 
x:ev.clientX 
+ document.body.scrollLeft  document.body.clientLeft,y:ev.clientY + document.body.scrollTop  document.body.clientTop 
}

}

 

//
弹出方法 


function
 showMessageBox(wTitle,content,pos,wWidth) 



closeWindow(); 
var bWidth=parseInt(document.documentElement.scrollWidth); 
var bHeight=parseInt(document.documentElement.scrollHeight); 
if(isIe)
setSelectState(
hidden);}
 
var back=document.createElement(div); 
back.id
=back
var styleStr=top:0px;left:0px;position:absolute;background:#003973;width:+bWidth+px;height:+bHeight+px;
styleStr
+=(isIe)?filter:alpha(opacity=0);:opacity:0;
back.style.cssText
=styleStr; 
document.body.appendChild(back); 
showBackground(back,
50); 
var mesW=document.createElement(div); 
mesW.id
=mesWindow
mesW.className
=mesWindow
mesW.innerHTML
=
+wTitle+
+content+


styleStr
=left:+(((pos.xwWidth)>0)?(pos.xwWidth):pos.x)+px;top:+(pos.y)+px;position:absolute;width:+wWidth+px;
mesW.style.cssText
=styleStr; 
document.body.appendChild(mesW); 
}

 

//
让背景渐渐变暗 


function
 showBackground(obj,endInt) 



if(isIe) 

obj.filters.alpha.opacity
+=1
if(obj.filters.alpha.opacity<endInt) 

setTimeout(
function(){showBackground(obj,endInt)},5); 
}
 
}
else
var al=parseFloat(obj.style.opacity);al+=0.01
obj.style.opacity
=al; 
if(al<(endInt/100)) 
{setTimeout(function(){showBackground(obj,endInt)},5);} 
}
 
}

 

//
关闭窗口 


function
 closeWindow() 



if(document.getElementById(back)!=null

document.getElementById(
back).parentNode.removeChild(document.getElementById(back)); 
}
 
if(document.getElementById(mesWindow)!=null

document.getElementById(
mesWindow).parentNode.removeChild(document.getElementById(mesWindow)); 
}
 

if(isIe)
setSelectState(
);}
 
}

 

//
测试弹出 


function
 testMessageBox(ev) 



var objPos = mousePosition(ev); 
messContent
=
中国配偶国际征婚交友网络最新动态中国配偶国际征婚交友网络最新动态中国配偶国际征婚交友网络最新动态中国配偶国际征婚交友网络最新动态中国配偶国际征婚交友网络最新动态中国配偶国际征婚交友网络最新动态中国配偶国际征婚交友网络最新动态中国配偶国际征婚交友网络最新动态中国配偶国际征婚交友网络最新动态中国配偶国际征婚交友网络最新动态

showMessageBox(
动态标题,messContent,objPos,790); 
}



调用页面代码非常简单,用鼠标onclick事件OK的拉,当然你也可以改成其他的事件:


<
link 
href
=”sub.css”
 rel
=”stylesheet”
 type
=”text/css”
 
/>


<
script 
type
=’text/javascript’ 
src
=’js/msg.js’
>
script
>


<
body
>


<

href
=”#”
 onClick
=”testMessageBox(event);”
>
就把内容方里面效果

a
>



body
>

用到的css如下:

名称是sub.css



mesWindow

{border:#666 1px solid;background:#fff; margin-top:50px; margin-left:40px;}
 
.mesWindowTop


{border-bottom:#eee 1px solid;margin-left:4px;padding:3px;font-weight:bold;text-align:left;font-size:12px;}
 
.mesWindowContent


{margin:8px;font-size:12px;}
 
.mesWindow .close


{height:15px;width:28px;border:none;cursor:pointer;text-decoration:underline;background:#fff}
 

恭喜您完成了,如果你要更改谈出层大小,被屏蔽颜色在js下更改!js带了注释!!

原理示例:

 


<
HEAD
>


<
TITLE
>
 New Document 

TITLE
>



<
style 
type
=”text/css”
>


body
{
font-family
: 幼圆;
}

#login
{
position
: relative;
display
: none;
top
: 20px;
left
: 30px;
width
: 280px;
height
: 150px;
background-color
: #ffffff;
text-align
: center;
border
: solid 1px;
padding
: 10px;
z-index
: 1;
}

#panel
{
background-color
: #CCFFFF;
padding
: 10px;
margin
: 10px;
}



style
>


<
script 
type
=”text/javascript”
>


function showLogin()
{
login.style.display 
= block;
}

function showForbid()
{
forbid.style.width 
= document.body.clientWidth;
forbid.style.height 
= document.body.clientHeight;
forbid.style.visibility 
= visible;
}

function tt()
{
   
if (document.getElementById(test).value==feng)
   
{
   login.style.display 
= none;forbid.style.visibility = hiddenvoid(0);
   }

}



script
>



HEAD
>


<
BODY
>


<
div 
id
=”forbid”
 style
=”position: absolute; visibility: hidden; z-index: 0; top: 0px; left: 0px;
background-color: #CCCCCC; filter:Alpha(Opacity=60,style=0);”

>
div
>


<

href
=”javascript:showLogin();showForbid();void(0);”
>
点击登录

a
>


<
div 
id
=”login”
>


<
span
>
登录

span
>


<
div 
id
=”panel”
>


<
lable
>

 
称:

lable
><
input 
type
=”text”
 size
=”20″
 name
=”test”
 
/><
br 
/><
br 
/>


<
lable
>

 
码:

lable
><
input 
type
=”password”
 size
=”20″
><
br 
/><
br 
/>


<
input 
type
=”checkbox”
 
/><
lable
>
记住我

lable
>



div
>


<
input 
type
=”button”
 value
=”登录”
 onClick
=”tt();”
 
/>


<
br 
/>


<
br 
/>


<

href
=”javascript:login.style.display = ‘none’;forbid.style.visibility = ‘hidden’; void(0);”
>
关闭

a
>



div
>



BODY
>

通用弹出层页面(兼容IE、firefox)



<%

@ page contentType=text/html; charset=utf-8 language=java import=java.sql.* errorPage=“” 
%>


<%

/*
            通用弹出层页面(兼容IE、firefox)
    作者:陈满森
    创建时间:
2007711        最后修改时间:2007711
    说明:
        
1.openWindows(width,height)—-打开弹出层调用的函数,可控制层的宽度和高度
        
2.hiddenWindows()—-关闭弹出层调用函数
        
3._displaySelect()—-隐藏下拉框标签,因为它的优先度太高
        
4.<div id=LockWindows>—-用于实现屏蔽弹出层以下的页面
        
5.<div id=WindowDIV>—-用于显示弹出层的内容
    例子(空格自己去掉):
        在需要弹出层的页面引用
< %@ include file=../common/common_openWindows.jsp>
        
< input type=button onclick=openWindows(‘800′,’700’); value=编辑 / >
        
< input type=button onclick=hiddenWindows(); value=关闭 / >
*/

%>


<
style 
type
=”text/css”
>


#LockWindows
{
    position
:absolute; top:10px; left:10px; background-color:#777777; z-index:2; display:none;
    
/* Moz Family使用私有属性-moz-opacity: 0.70 */
    
/* IE 使用私有属性filter */
    
/* 标准属性opacity支持CSS3的浏览器(FF 1.5也支持)*/
    opacity
: 0.70;
    filter 
: progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=70,finishOpacity=100);
    width
:expression(documentElement.clientWidth < 900?(documentElement.clientWidth==0?(body.clientWidth<900?’900′:’auto’):’900px’):’auto’);
}

#WindowDIV
{position:absolute; z-index:3; background-color:#FFFFFF; border:#000000 solid 1px; display:none;}


style
>


<
script 
type
=”text/javascript”
>


//隐藏下拉框,以解决下拉框优先度太高的问题,  
function _displaySelect(){
    
var selects=document.getElementsByTagName(select);//整个页面的所有下拉框
    var objWindow =  $(WindowDIV);
    
var DIVselects = objWindow.getElementsByTagName(select);//整个弹出层的所有下拉框
    for(var i=0;i<selects.length;i++){
        
if(selects[i].style.visibility){
            selects[i].style.visibility
=“”;
        }
else{
            selects[i].style.visibility
=hidden;
            
for(var j=0; i<DIVselects.length; j++){
                DIVselects[j].style.visibility
=“”;
            }

        }

    }

}

function openWindows(width,height)
    
var objWindow =  $(WindowDIV);
    
var objLock =  $(LockWindows);//这个是用于在IE下屏蔽内容用
    objLock.style.display=block;
    objLock.style.width
=document.body.clientWidth+px;
    objLock.style.height
=document.body.clientHeight+px;
    objLock.style.minWidth
=document.body.clientWidth+px;
    objLock.style.minHeight
=document.body.clientHeight+px;
// 判断输入的宽度和高度是否大于当前浏览器的宽度和高度
    if(width>document.body.clientWidth) width = document.body.clientWidth+px;
    
if(height>document.body.clientHeight) height = document.body.clientHeight+px;
    objWindow.style.display
=block;
    objWindow.style.width 
= width+px;
    objWindow.style.height 
= height+px;
// 将弹出层居中
    objWindow.style.left=(document.body.offsetWidthwidth)/2+px;
    objWindow.style.top
=(document.body.offsetHeightheight)/2+px;
    _displaySelect();
}

function hiddenWindows(){
    $(
LockWindows).style.display=none;
    $(
WindowDIV).style.display=none;
    _displaySelect();
}



script
>



<
div 
id
=”LockWindows”
>
 

div
>


<
div 
id
=”WindowDIV”
>
     
    

<%

@ include file=../examination/openEditerDiv.jsp
%>



div
>