這個就沒什麼好說的了。 。直接上代碼啊! !
首先是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>
<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 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來實現。本人覺得這樣做並不理想啊。 。 。
求各路大神指教啊!