1. 程式人生 > >前端實現情感樹洞頁面效果demo1-登陸註冊頁面(sign.html)

前端實現情感樹洞頁面效果demo1-登陸註冊頁面(sign.html)

更多內容敬請關注此CSDN及Halo-FocusPoints部落格


頁面效果:情感樹洞

預設賬號:admin 密碼:123456

demo下載:情感樹洞demo.zip

目錄構造

├──情感樹洞demo
│  └── sign.html
│  └── index.html
│  └── user_control.html
│  └── css/
│     ├── bootstrap.min.css
│     ├── font-awesome.css
│     ├── index.css
│     └── style.css
│  └── js/
│     ├── bootstrap.min.js
│     ├── common.js
│     └── isScroll.js
│     ├── jquery.panelslider.min.js
│     └── jquery-1.9.1.min.js
└───── images/
      ├── bg1.jpg
      ├── bg2.jpg
      ├── home_bg_img.jpg
      ├── logo_large.png
      ├── logo_medium.png
      └── DSC_0243.jpg

首先,我們來構思一下整個頁面的構造

    <html>
    	<head>
    		<meta charset="utf-8">
    		<title>登入-情感樹洞</title>
    		<!--引入JQ1.9.1檔案-->
    		<script type="text/javascript" src="js/jquery-1.9.1.min.js"></script> 
    	</head>
    	<body>
    		<!--新增一個div放置背景,由於我們採用可晃動的背景效果,所以採用div標籤-->
<div id="login_bg"></div> <!--頁面主體--> <div> <!--第一個模組:放置兩個按鈕,觸發登入和註冊,為了方便設定css樣式,這裡採用div標籤--> <div> <div>登入</div> <div>註冊</div> </div> <!--第二個模組:放置div存放登入、註冊的版塊--> <
div
>
<!--放置form標籤以便於在前後端整合時,方便傳送前端賬號密碼給伺服器端驗證--> <form> <!--注意:這裡只新增一個form來存放登入註冊,然後通過js來判斷當前顯示的模組為登入還是註冊--> </form> </div> <!--第三個模組:放置非同步請求時的響應視窗--> <div></div> </div> </body> </html>

以上程式碼為最初構思程式碼結構,可以看出主要的程式碼段分為三個模組:功能按鈕、登入註冊版塊、非同步請求響應視窗。

這時候,我們再看一下demo頁面,然後構思我們缺少的東西以及效果的實現,或者說整個頁面的執行流程。

大致為:

  • 1、 顯示登入註冊按鈕
  • 2、點選按鈕
  • 3、顯示登入註冊版塊
  • 4、填寫賬號密碼
  • 5、提交表單驗證(包含前、後端驗證)
  • 6、驗證成功,顯示非同步請求響應視窗
  • 7、跳轉下一頁面。

我們先來新增頁面的背景圖及其效果:
css目錄下建立style.css檔案

@charset "utf-8";
/* CSS Document */
/* 初始化設定 */
* {
	padding: 0;
	margin: 0;
}

body {
	font-family: "微軟雅黑";
	font-size: 12px;
	color: black;
	height: 100%;
}

img {
	display: block;
	font-size: 0px;
	border: none;
}

a {
	color: black;
	text-decoration: none;
}
/***************sign.html***************/
#login_bg{
		position: absolute;
		z-index: -1;
		width: 100%;
		height: 100%;
		background-image: url(../images/bg1.jpg);
		background-position: 50% 10%;
		background-size: auto;
}

引入css檔案:

<!--引入自定義樣式-->
<link rel="stylesheet" type="text/css" href="css/style.css">

建立common.js檔案

$(document).mousemove(function(e){	//背景移動
	var page_width = $("body").width();
	var x = e.pageX;
	x=40+(((x-page_width/2)/page_width)*100+50)/20;
	x = x+"% 10%";
	var obj = document.getElementById("login_bg")
	obj.style.backgroundPosition = x;
});

引入js檔案(引入位置置於jq檔案後,不然jq檔案不會生效):

<script type="text/javascript" src="js/common.js"></script>

這時候,我們再看頁面,就有了隨滑鼠晃動的效果。

接下來,我們研究三個板塊的定位問題

先按照各個模組的定義來賦予其id及class並填入input等標籤
程式碼如下:

<html>

	<head>
		<meta charset="utf-8">
		<title>登入-情感樹洞</title>
		<!--引入自定義樣式-->
		<link rel="stylesheet" type="text/css" href="css/style.css">
		<!--引入JQ1.9.1檔案-->
		<script type="text/javascript" src="js/jquery-1.9.1.min.js"></script>
	</head>

	<body>
		<!--新增一個div放置背景,由於我們採用可晃動的背景效果,所以採用div標籤-->
		<div id="login_bg"></div>
		<!--頁面主體-->
		<div id="login_content" class="contruct">
			<!--第一個模組:放置兩個按鈕,觸發登入和註冊,為了方便設定css樣式,這裡採用div標籤-->
			<div id="login_content_logo">
				<img src="images/logo_large.png">
				<div id="login_content_log">登入</div>
				<div id="login_content_reg">註冊</div>
			</div>
			<!--第二個模組:放置div存放登入、註冊的版塊-->
			<div id="login_content_log_02">
				<p id="login_defeat">賬號或密碼錯誤</p>
				<!--放置form標籤以便於在前後端整合時,方便傳送前端賬號密碼給伺服器端驗證-->
				<form name="form">
					<!--注意:這裡只新增一個form來存放登入註冊,然後通過js來判斷當前顯示的模組為登入還是註冊-->
					<div id="login_input1"><input id="login_input11" type="text" name="user" value="使用者名稱" autocomplete="off"></div>
					<div id="login_input2"><input id="login_input12" type="text" name="password" value="密碼" autocomplete="off"></div>
					<div id="login_input5"><input id="login_input33" type="text" name="user" value="使用者名稱" autocomplete="off"></div>
					<div id="login_input6"><input id="login_input44" type="text" name="password" value="密碼" autocomplete="off"></div>
					<p id="login_tip"></p>
					<div id="login_input4">登入</div>

					<div id="login_input3"><input type="checkbox" value="3" name="remeber" checked="checked">記住密碼</div>
					<p id="login_link1">
						<a href="#">忘記密碼</a>
					</p>
					<p id="login_link2">
						<a href="#">註冊賬號</a>
					</p>
				</form>
				<p id="login_close">×</p>
			</div>
			<!--第三個模組:放置非同步請求時的響應視窗-->
			<div id="login_content_log_03">
				<!--返回使用者頭像-->
				<div id="login_success_img">
					<img src="images/DSC_0243.jpg" width="80" height="80">
				</div>
				<p id="login_success1">歡迎回來,<span id="welcome_user">admin</span></p>
				<p id="login_success2">瀏覽器將在3秒後跳轉至首頁</p>
				<p id="login_success3">
					<!--伺服器端返回首頁地址-->
					<a href="home.html">如果瀏覽器長時間沒有跳轉,點選這裡返回首頁</a>
				</p>
			</div>
		</div>
	</body>
	<script type="text/javascript" src="js/common.js"></script>

</html>

效果如下:

我們通過下面的css樣式達到我們想要的佈局效果。

@charset "utf-8";
/* CSS Document */
/* 初始化設定 */
* {
	padding: 0;
	margin: 0;
}

body {
	font-family: "微軟雅黑";
	font-size: 12px;
	color: black;
	height: 100%;
}

img {
	display: block;
	font-size: 0px;
	border: none;
}

a {
	color: black;
	text-decoration: none;
}
/***************sign.html***************/
#login_bg{
		position: absolute;
		z-index: -1;
		width: 100%;
		height: 100%;
		background-image: url(../images/bg1.jpg);
		background-position: 50% 10%;
		background-size: auto;
}
#login_content{
	width: 100%;
}
/*模組一*/
#login_content_logo {
    padding-top: 150px;
    position: relative;
    width: 960px;
    height: auto;
    margin: 0 auto;
}
#login_content_logo img {
	width: 30%;
	height: auto;
	margin: 0 auto;
}
#login_content_log,#login_content_reg,#login_input4 {
	transition: background-color 0.5s;
	-webkit-transition: background-color 0.5s;
	-moz-transition: background-color 0.5s;
	-o-transition: background-color 0.5s;
	-ms-transition: background-color 0.5s;
	width: 250px;
	height: 35px;
	border-radius: 3px;
	-moz-border-radius: 3px;
	-ms-border-radius: 3px;
	-o-border-radius: 3px;
	-webkit-border-radius: 3px;
	margin: 0 auto;
	margin-top: 50px;
	background-color: #0099cc;
	color: white;
	font-size: 15px;
	text-align: center;
	line-height: 35px;
	cursor: pointer;
}
#login_content_reg{
	margin-top: 35px;
	background-color: white;
	color: black;
}
#login_content_log:hover {
	background-color: #006FB8;
}
#login_content_reg:hover {
	background: #E3E3E3;
}
/*模組二*/
#login_content_log_02 {
/*	display: none;*/
	width: 300px;
	height: 230px;
	position: absolute;
	background-image: url(../images/bg2.png);
	background-repeat: repeat;
	top: 300px;
	left: 50%;
	margin-left: -150px;
}
#login_input1 input,
#login_input2 input,
#login_input5 input,
#login_input6 input {
	padding: 3px 10px;
	width: 229px;
	height: 27px;
	border: none;
	background-color: transparent;
	outline-style: none;
	font-size: 10px;
	font-family: "微軟雅黑";
	color: #9F9F9F;
}
#login_input1,#login_input5 {
	width: 250px;
	height: 35px;
	margin: 0 auto;
	margin-top: 30px;
	border: gray 1px solid;
	background-color: white;
}
#login_input2,#login_input6 {
	width: 250px;
	height: 35px;
	margin: 0 auto;
	margin-top: 15px;
	border: gray 1px solid;
	background-color: white;
}
#login_input4 {
	position: relative;
	width: 250px;
	height: 35px;
	font-size: 15px;
	text-align: center;
	line-height: 35px;
	background-color: #0099cc;
	border: none;
	margin: 0 auto;
	margin-top: 25px;
	color: white;
	cursor: pointer;
	border: #0099cc 1px solid;
}
#login_input3 {
	float: left;
	margin: 20px 10px 0px 20px;
}
#login_link1,
#login_link2 {
	float: left;
	width: 60px;
	margin: 20px 19px 0px 25px;
}
#login_link1 a:hover,
#login_link2 a:hover {
	text-decoration: underline;
}
#login_close {
	position: absolute;
	top: -5px;
	right: 1px;
	cursor: pointer;
	font-size: 20px;
}
#login_defeat {
	width: 120px;
	height: 25px;
	text-align: center;
	line-height: 25px;
	background-color: #9B0002;
	color: white;
	position: absolute;
	z-index: 3;
	left: 50%;
	margin-left: -60px;
	top: -25px;
}
/*模組三*/
#login_content_log_03 {
	/*display: none;*/
	position: absolute;
	width: 300px;
	height: 230px;
	background-image: url(../images/bg2.png);
	background-repeat: repeat;
	top: 300px;
	left: 50%;
	margin-left: -150px;
}
#login_success_img {
	width: 80px;
	height: 80px;
	border