javascript实现一个简单的弹出窗
功能介绍:点击一个按钮,然后页面会弹出一个窗口,而页面原来的内容会保持不变,只是在其页面上加了一个遮罩层,设置了不透明度,弹出的窗口可设置在固定位置,也可以自由设定,常见于网站的登录按钮。
html页面:
<!DOCTYPEhtml> <htmllang="en"> <head> <metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/> <title>js实现一个弹出框</title> <styletype="text/css"> /*预先写好弹出窗的样式*/ #menu{height:900px;} #close{ width:30px; height:30px; cursor:pointer; position:absolute; right:5px; top:5px; text-indent:-999em; background-color:blue; } #mask{ background-color:pink; opacity:0.5; filter:alpha(opacity=50); position:absolute; left:0; top:0; z-index:1; } #login{ position:fixed; z-index:2; } .loginCon{ position:relative; width:670px; height:380px; /*background:url(img/loginBg.png)#2A2C2Ecentercenterno-repeat;*/ background-color:#ccc; } </style> </head> <body> <divid="menu"> <divid="login-area"> <buttonid="btnLogin">登录</button> </div> </div> </body> </html>
js代码:
<script> functionopenNew(){ //获取页面的高度和宽度 varsWidth=document.body.scrollWidth; varsHeight=document.body.scrollHeight; //获取页面的可视区域高度和宽度 varwHeight=document.documentElement.clientHeight; varoMask=document.createElement("div"); oMask.id="mask"; oMask.style.height=sHeight+"px"; oMask.style.width=sWidth+"px"; document.body.appendChild(oMask); varoLogin=document.createElement("div"); oLogin.id="login"; oLogin.innerHTML="<divclass='loginCon'><divid='close'>关闭</div></div>"; document.body.appendChild(oLogin); //获取登陆框的宽和高 vardHeight=oLogin.offsetHeight; vardWidth=oLogin.offsetWidth; //设置登陆框的left和top oLogin.style.left=sWidth/2-dWidth/2+"px"; oLogin.style.top=wHeight/2-dHeight/2+"px"; //点击关闭按钮 varoClose=document.getElementById("close"); //点击登陆框以外的区域也可以关闭登陆框 oClose.onclick=oMask.onclick=function(){ document.body.removeChild(oLogin); document.body.removeChild(oMask); }; }; window.onload=function(){ varoBtn=document.getElementById("btnLogin"); //点击登录按钮 oBtn.onclick=function(){ openNew(); returnfalse; } } </script>