Posted in Javascript onFebruary 07, 2014
这个就没什么好说的了。。直接上代码啊!!
首先是HTML的代码。其中包含了登录点击按钮以及一个简陋的登录框。
<body> <div id="shade"></div> <div> <a onclick="login()" style="cursor:pointer">登录</a> </div> <br/> 什么都没有用。。。<br/><br/> 什么都没有用。。。<br/><br/> 什么都没有用。。。<br/><br/> 什么都没有用。。。<br/><br/> <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/> <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/> <div id="login" style="display: none; z-index:1025; position:absolute;"> <form method="post" action="user/login.html"> <table width="200"> <caption> 用户登录 </caption> <tr> <td>用户名:</td> <td><input type="text" name="userName" /></td> </tr> <tr> <td>密码:</td> <td><input type="password" name="password" /></td> </tr> <tr> <td>验证码:</td> <td><img alt="" src="base/verify.html" onClick=""></td> </tr> <tr> <td><input type="submit" value="登录" /></td> <td><input type="button" value="取消" onClick="cancel()" /></td> </tr> </table> </form> </div> </body>
接着是JS脚本代码的实现
<script type="text/javascript"> function login(){ var shadeWidth = document.body.clientWidth + 30; var shadeHeight = document.body.clientHeight + 30; var shade = document.getElementById("shade"); shade.style.width = shadeWidth + "px"; shade.style.height = shadeHeight + "px"; shade.style.display = "block"; var loginDivWidth = 200; var loginDivHeight = 800; var loginDiv = document.getElementById("login"); loginDiv.style.width = loginDivWidth + "px"; loginDiv.style.height = loginDivHeight + "px"; loginDiv.style.top = (document.body.scrollTop + document.body.clientHeight / 2 - loginDivHeight / 2) + "px"; loginDiv.style.left = (document.body.scrollLeft + document.body.clientWidth / 2 - loginDivWidth / 2) + "px"; loginDiv.style.display = "block"; } </script>
这里只有显示遮罩层以及登录框的代码。至于隐藏的代码也很简单,就是将遮罩层(shade)的DIV块以及登录框(login)的DIV块的display属性都设置成none应该就没有什么问题了。。
至此,一个简单的通过遮罩层实现浮层DIV登录的功能就实现了。关于美工方面的工作就由大家自行解决了。
在这里,有一个功能求助大家啊。。就是如何让弹出的登录框的DIV块跟随滚动条移动呢??
我的实验代码如下。
function loginDivCenter (){ loginDiv.style.top = (document.body.scrollTop + document.body.clientHeight / 2 - loginDivHeight / 2) + "px"; loginDiv.style.left = (document.body.scrollLeft + document.body.clientWidth / 2 - loginDivWidth / 2) + "px"; } function scall (){ loginDivCenter(); } window.onscroll=scall; window.onresize=scall; window.onload=scall;
但是很不幸的是本人失败了。。网上找了很多,但都不是符合要求的。大多是设置一个setInterval来实现。本人觉得这样做并不理想啊。。。
求各路大神指教啊!
通过遮罩层实现浮层DIV登录的js代码
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@