Funktionseinführung: Klicken Sie auf eine Schaltfläche, und der ursprüngliche Inhalt der Seite bleibt unverändert. Es wird lediglich eine Maskenebene zur Seite hinzugefügt und die Deckkraft festgelegt kann in einer festen Position eingestellt werden, kann aber auch frei eingestellt werden, was häufig in Website-Anmeldeschaltflächen zu sehen ist.
HTML-Seite:
<!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>js实现一个弹出框</title> <style type="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) #2A2C2E center center no-repeat;*/ background-color: #ccc; } </style> </head> <body> <div id="menu"> <div id="login-area"> <button id="btnLogin">登录</button> </div> </div> </body> </html>
JS-Code:
<script> function openNew(){ //获取页面的高度和宽度 var sWidth=document.body.scrollWidth; var sHeight=document.body.scrollHeight; //获取页面的可视区域高度和宽度 var wHeight=document.documentElement.clientHeight; var oMask=document.createElement("div"); oMask.id="mask"; oMask.style.height=sHeight+"px"; oMask.style.width=sWidth+"px"; document.body.appendChild(oMask); var oLogin=document.createElement("div"); oLogin.id="login"; oLogin.innerHTML="<div class='loginCon'><div id='close'>关闭</div></div>"; document.body.appendChild(oLogin); //获取登陆框的宽和高 var dHeight=oLogin.offsetHeight; var dWidth=oLogin.offsetWidth; //设置登陆框的left和top oLogin.style.left=sWidth/2-dWidth/2+"px"; oLogin.style.top=wHeight/2-dHeight/2+"px"; //点击关闭按钮 var oClose=document.getElementById("close"); //点击登陆框以外的区域也可以关闭登陆框 oClose.onclick=oMask.onclick=function(){ document.body.removeChild(oLogin); document.body.removeChild(oMask); }; }; window.onload=function(){ var oBtn=document.getElementById("btnLogin"); //点击登录按钮 oBtn.onclick=function(){ openNew(); return false; } } </script>