1. 程式人生 > >DIY部落格(3)

DIY部落格(3)

github程式碼:https://github.com/numb-men/my_blog
一、為了研究頁面的設計和佈局(還有為了給我的好朋友關注)我註冊了一個部落格園賬號,併成功申請了微博,切換部落格的面板很簡單
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
之後我選擇了我喜歡的一個面板,併發布了第一篇部落格:
在這裡插入圖片描述
但是這個部落格雖然看起來精美,但是畢竟不是出自自己之手。我還是在開發我的個人部落格上任重道遠。

二、新的介面佈局

之前的介面佈局被我淘汰了:
在這裡插入圖片描述
它太過死板,佈局不精緻,而且不實用。
我參照一些文件頁面的寫法,參考出了以下的佈局:
在這裡插入圖片描述
它並沒有枉費我一個下午的心血,它的左側邊欄和右邊內容顯示是獨立滑動的,介面的色彩也做了修繕。未來在最右邊還可以加入新的介面元素,如參考部落格園的日曆(我非常喜歡)、文章排行、個人介紹、評論等等。整體的佈局還是以精簡實用為核心。
三、原始碼
(1)html:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<meta name="description" content="衡與墨的個人網站">
		<meta name="author" content="le">
		<title>衡與墨</title>
		<link rel="stylesheet" type="text/css" href="./css/all.css" charset="utf-8">
		<script src="https://apps.bdimg.com/libs/jquery/1.8.3/jquery.min.js"></script>
		<script type="text/javascript" src="./js/index.js" charset="utf-8"></script>
	</head>
	<body>
		<div class="wrap">
			<div class="menu-fixed" id="menu">
				<div class="menu-top">
					<div class="row-in space-center">
						<img src="./img/hengyumo.jpg" class="my-img">
						<div class="my-name">衡與墨</div>
					</div>
				</div>
				<div class="menu-center">
					<ul>
						<li>莊子名言--</li>
						<li>莊子名言</li>
						<li>莊子名言</li>
						<li>莊子名言</li>
						<li>莊子名言</li>
						<li>莊子名言</li>
						<li>莊子名言</li>
						<li>莊子名言</li>
						<li>莊子名言</li>
						<li>莊子名言</li>
						<li>莊子名言</li>
						<li>莊子名言</li>
						<li>莊子名言</li>
						<li>莊子名言</li>
						<li>莊子名言</li>
						<li>莊子名言</li>
						<li>莊子名言--</li>
						<li>莊子名言</li>
						<li>莊子名言</li>
						<li>莊子名言</li>
						<li>莊子名言</li>
						<li>莊子名言</li>
						<li>莊子名言</li>
						<li>莊子名言</li>
						<li>莊子名言</li>
						<li>莊子名言</li>
						<li>莊子名言</li>
						<li>莊子名言</li>
						<li>莊子名言--</li>
						<li>莊子名言</li>
						<li>莊子名言</li>
						<li>莊子名言</li>
						<li>莊子名言</li>
						<li>莊子名言</li>
						<li>莊子名言</li>
						<li>莊子名言</li>
						<li>莊子名言</li>
						<li>莊子名言</li>
						<li>莊子名言</li>
						<li>莊子名言</li>
						<li>莊子名言</li>
						<li>莊子名言</li>
						<li>莊子名言</li>
						<li>莊子名言</li>
						<li>莊子名言--</li>
						<li>莊子名言</li>
						<li>莊子名言</li>
						<li>莊子名言</li>
						<li>莊子名言</li>
						<li>莊子名言</li>
						<li>莊子名言</li>
						<li>莊子名言</li>
						<li>莊子名言</li>
						<li>莊子名言</li>
						<li>莊子名言</li>
						<li>莊子名言</li>
					</ul>
				</div>
			</div>
			<div class="contain-unfixed" id="contain">
				<p>
					一、大知閒閒,小知間間;大言炎炎,小言詹詹。——《莊子•齊物論》
					【譯】最有智慧的人,總會表現出豁達大度之態;小有才氣的人,總愛為微小的是非而斤斤計較。合乎大道的言論,其勢如燎原烈火,既美好又盛大,讓人聽了心悅誠服。那些耍小聰明的言論,瑣瑣碎碎,廢話連篇。
					【解】立身處世,亦不妨從中借鑑。
				</p>
				<p>
					二、吾生也有涯,而知也無涯。以在涯隨無涯,殆已;已而為知者,殆而已矣。——《莊子•養生主》
					【譯】人的生命是有限的,而知識是無限的。要想用有限的生命去追求無限的知識,便會感到很疲倦;既然如此還要不停地去追求知識,便會弄得更加疲睏不堪!
					【解】用有限的生命投入到無限的學習之中是不明智的,反應了莊子棄智絕聖的思想。
				</p>
				<p>
					三、且夫水之積也不厚,則其負大舟也無力。——《莊子•逍遙遊》
					【譯】如果水積的不深不厚,那麼它就沒有力量負載大船。
					【解】從大舟與水的關係看,我們至少可以得到這樣的啟示:求大學問,幹大事業,必須打下堅實、深厚的基礎。
				</p>
				<p>
					四、相與於無相與,相為於無相為。——《莊子•大宗師》
					【譯】相互結交在不結交之中,相互有為於無為之中。
					【解】交友要達到相交出於無心,相助出於無為。這才是“莫逆之交”。
				</p>
				<p>
					五、庖人雖不治庖,尸祝不越樽俎而代之矣。——《莊子•逍遙遊》
					【譯】廚師雖然不做祭品,主持祭祀的司儀是不會越過擺設祭品的几案,代替廚師去做的。
					【解】此謂儘管庖人不盡職,尸祝也不必超越自己祭神的職權範圍代他行事。表現了莊子無為而治的思想,成語“越俎代庖”即由此而來。
				</p>
				<p>
					六、以無厚入有間,恢恢乎其於遊刃必有餘地矣。——《莊子•養生主》
					【譯】以無厚入有隙,所以運作起來還是寬綽而有餘地的。
					【解】說明做事要“依乎天理”,“以無厚入有間”,這是莊子養生論的核心。同時說明了要認識自然規律,按自然規律辦事。成語“目無全牛”、“遊刃有餘”這兩條成語,都出自這裡。
				</p>
				<p>
					七、以火救火,以水救水,名之曰益多。——《莊子•人間世》
					【譯】用火來救火,用水來救水,這樣做不但不能匡正,反而會增加(衛君的)過錯。
					【解】假借孔子教導顏回的話,來闡明一種處世之道。成語“以火救火”、“以水救水”出此。八、物無非彼,物無非是;自彼則不見,自知則知之。故曰:彼出於是,是亦因彼。——《莊子•齊物論》
					【譯】世上一切事物,無不存在對立的另一面,無不存在對立的這一面。從另一面看不明白的,從這一面就可以看得明白些。所以說,彼出於此,此也離不開彼。即事物對立的兩面,誰也離不開誰。
				</p>
				<p>
					一、大知閒閒,小知間間;大言炎炎,小言詹詹。——《莊子•齊物論》
					【譯】最有智慧的人,總會表現出豁達大度之態;小有才氣的人,總愛為微小的是非而斤斤計較。合乎大道的言論,其勢如燎原烈火,既美好又盛大,讓人聽了心悅誠服。那些耍小聰明的言論,瑣瑣碎碎,廢話連篇。
					【解】立身處世,亦不妨從中借鑑。
				</p>
				<p>
					二、吾生也有涯,而知也無涯。以在涯隨無涯,殆已;已而為知者,殆而已矣。——《莊子•養生主》
					【譯】人的生命是有限的,而知識是無限的。要想用有限的生命去追求無限的知識,便會感到很疲倦;既然如此還要不停地去追求知識,便會弄得更加疲睏不堪!
					【解】用有限的生命投入到無限的學習之中是不明智的,反應了莊子棄智絕聖的思想。
				</p>
				<p>
					三、且夫水之積也不厚,則其負大舟也無力。——《莊子•逍遙遊》
					【譯】如果水積的不深不厚,那麼它就沒有力量負載大船。
					【解】從大舟與水的關係看,我們至少可以得到這樣的啟示:求大學問,幹大事業,必須打下堅實、深厚的基礎。
				</p>
				<p>
					四、相與於無相與,相為於無相為。——《莊子•大宗師》
					【譯】相互結交在不結交之中,相互有為於無為之中。
					【解】交友要達到相交出於無心,相助出於無為。這才是“莫逆之交”。
				</p>
				<p>
					五、庖人雖不治庖,尸祝不越樽俎而代之矣。——《莊子•逍遙遊》
					【譯】廚師雖然不做祭品,主持祭祀的司儀是不會越過擺設祭品的几案,代替廚師去做的。
					【解】此謂儘管庖人不盡職,尸祝也不必超越自己祭神的職權範圍代他行事。表現了莊子無為而治的思想,成語“越俎代庖”即由此而來。
				</p>
				<p>
					六、以無厚入有間,恢恢乎其於遊刃必有餘地矣。——《莊子•養生主》
					【譯】以無厚入有隙,所以運作起來還是寬綽而有餘地的。
					【解】說明做事要“依乎天理”,“以無厚入有間”,這是莊子養生論的核心。同時說明了要認識自然規律,按自然規律辦事。成語“目無全牛”、“遊刃有餘”這兩條成語,都出自這裡。
				</p>
				<p>
					七、以火救火,以水救水,名之曰益多。——《莊子•人間世》
					【譯】用火來救火,用水來救水,這樣做不但不能匡正,反而會增加(衛君的)過錯。
					【解】假借孔子教導顏回的話,來闡明一種處世之道。成語“以火救火”、“以水救水”出此。八、物無非彼,物無非是;自彼則不見,自知則知之。故曰:彼出於是,是亦因彼。——《莊子•齊物論》
					【譯】世上一切事物,無不存在對立的另一面,無不存在對立的這一面。從另一面看不明白的,從這一面就可以看得明白些。所以說,彼出於此,此也離不開彼。即事物對立的兩面,誰也離不開誰。
				</p>
			</div>
		</div>
	</body>
</html>

(2)css:

@charset "utf-8";
*{
	padding:0;
	margin:0;
}
body{
	font-weight: normal;
    color: #404040;
    min-height: 100%;
    overflow-x: hidden;
    background: #edf0f2;
}
.wrap{
}
.menu-fixed{
	width: 250px;
	background: #343131;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 200;
}
.menu-unfixed{
	width: 250px;
	background: #343131;
	padding-right: 1050px;
}
.menu-top{
	background: #2980B9;
	width:226px;
	height: 100px;
	padding: 25px 12px;
}
.my-img{
	width: 30px;
	height: 30px;
	margin-right: 20px;
	border-radius: 10%;
}
.my-name{
	line-height: 30px;
	font-size: 25px;
	color: #fcfcfc;
}
.menu-center{
	padding: 15px 0;
}
#menu ul{
	list-style: none;
}
#menu li{
	text-align: center;
	font-size: 14px;
	color: #d9d9d9;
	width: 204px;
	padding: 6px 23px;
}
.contain-unfixed{
	width: 750px;
	padding: 25px 150px 25px 400px;
	background: #fcfcfc;
}
.contain-fixed{
	width: 750px;
	padding: 25px 150px 25px 150px;
	background: #fcfcfc;
	position: fixed;
	top: 0;
	left: 250px;
	z-index: 200;
}
#contain p{
	font-size:16px;
}
.row-in{
	display: flex;
	flex-direction: row;
}
.column-in{
	display: flex;
	flex-direction: column;
}
.space-around{
	justify-content: space-around;
}
.space-between{
	justify-content: space-between;
}
.space-center{
	justify-content: center;
}

(3)js:

var menu_scrollTop = 0
var contain_scrollTop = 0
$(document).ready(function(){
	console.log("document ready!")
	$("#menu").mouseenter(function(){
		contain_scrollTop = $(document).scrollTop()
		console.log("contian_scrollTop:", contain_scrollTop)
		$("#menu").toggleClass("menu-unfixed menu-fixed")
		$("#contain").toggleClass("contain-fixed contain-unfixed")
		$(document).scrollTop(menu_scrollTop)
		$("#contain").css("top", -contain_scrollTop + "px")
	})
	$("#menu").mouseleave(function(){
		menu_scrollTop = $(document).scrollTop()
		console.log("menu_scrollTop:", menu_scrollTop)
		$("#menu").toggleClass("menu-unfixed menu-fixed")
		$("#contain").toggleClass("contain-fixed contain-unfixed")
		$(document).scrollTop(contain_scrollTop)
		$("#menu").css("top", -menu_scrollTop + "px")
	})
	$("#menu li").mouseenter(function(){
		$(this).css("background","#4e4a4a")
	})
	$("#menu li").mouseleave(function(){
		$(this).css("background", "#343131")
	})
	$("#contain p").mouseenter(function(){
		$(this).css("color", "#2980B9")
	})
	$("#contain p").mouseleave(function(){
		$(this).css("color", "#404040")
	})
})

(4)程式碼簡要說明:
其中js程式碼是實現側邊欄和內容獨立滑動的核心,我使用了JQuery的事件監聽,監聽滑鼠指標進入側邊欄和離開側邊欄,進入和離開時分別賦予側邊欄和內容不同的類佈局,實現它們的獨立。同時還使用兩個全域性的變數分別儲存側邊欄的scrollTop和內容的scrollTop,用來實現切換滑動進度。