首先在Body里边设置Input,并添加点击事件showLogin,用<p>标签做出一段较长的内容使页面可以下拉。设置一个被遮盖的层面mask,然后再设置一个登陆的层面login,并设置关闭按钮close-btn,用X表示。
<body> <input type="button" value="登录" id="login" /> <script> document.getElementById("login").onclick = function(){ var x = "<div class='close-btn'>X</div>"; showLogin(x); } </script> <p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p> <p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p> <p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p> <p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p> <p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p> <p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p> <p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p> <p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p> <p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p> <p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p> <p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p> <div class="mask"></div> <div class="login"> <div class="close-btn">X</div> </div> </body>
然后是设置CSS样式表,先将全局内外边距设为0,然后依次对各个div宽高背景色等进行设置,mask的z-index要设为998,因为它要在login的下面,login是相对于浏览器的,所以要定位成fixed,z-index设为999,关闭按钮close-btn设成小手。
<style> *{ margin: 0px; padding: 0px; } .mask{ 100%; /*height: 500px;*/ background-color: gray; opacity: 0.5; z-index: 998; position: absolute; top: 0px; left: 0px; } .login{ 400px; height: 300px; background-color: royalblue; position: fixed; /*left: 200px; top: 300px;*/ z-index: 999; } .close-btn{ 30px; height: 30px; position: absolute; right: 10px; top: 10px; background-color: aquamarine; text-align: center; line-height: 30px; font-size: 30px; } .close-btn:hover{ cursor: pointer; } </style>
我们接下来要做一个mask出来,不用div里的mask,先把它注释掉。
<!--<div class="mask"></div>-->
用点击事件里的showLogin来做,先创建一个div元素,让它等于一个mask变量,然后为mask赋值,给它一个属性className,让它等于“mask”,给它添一个子元素,注意它的上级是body,然后还要设置一个浏览器高度,这里取body的高度:clientHeight,宽度:clientWidth,接下来给login赋值,跟上边一样。Login的左边及上边的长度是要将body的高度宽度除以2。
script> function showLogin(x){ var bodyHeight = document.body.clientHeight; var clientHeight = document.documentElement.clientHeight; var clientWidth = document.documentElement.clientWidth; var mask = document.createElement("div"); mask.className = "mask"; mask.style.height = bodyHeight + "px"; mask.onclick = function(){ mask.remove(); login.remove(); }; document.body.appendChild(mask); var login = document.createElement("div"); login.className = "login"; login.style.left = clientWidth/2 - 200 + "px"; login.style.top = clientHeight/2 - 150 + "px"; login.innerHTML = x; document.body.appendChild(login); document.getElementsByClassName("close-btn")[0].onclick = function(){ mask.remove(); login.remove(); } } document.body.onresize = function(){ var clientHeight = document.documentElement.clientHeight; var clientWidth = document.documentElement.clientWidth; var login = document.getElementsByClassName("login")[0]; login.style.left = clientWidth/2 - 200 + "px"; login.style.top = clientHeight/2 - 150 + "px"; } </script>