使用css3中transition的页面切换

前言:      这里所讲的方法均来自:http://tympanus.net/codrops/2012/01/30/page-transitions-with-css3/

               demo查看: http://tympanus.net/Tutorials/CSS3PageTransitions/index.html#home

               这个网站是一个很好的教程网,里面主要使用CSS3和JQuery,比较简单易懂,但是做出来的作品却是清新和有趣。

主题:      转回主题这次我学到的是使用CSS3的transition做页面切换,这里主要使用到的技术有两个:

               1.transition

               2.:target(这是个伪类)

效果图:   

简单描述:以主页的页面左为底部,每当点击左边的菜单栏,对应的页面就从上到下降落下来。

观察html代码是:

                <!-- Home -->
		<div id="home" class="content">
			<h2>Home</h2>
			<p>Some content</p>
		</div>
		<!-- portfolio -->
		<div id="portfolio" class="panel">
			<div class="content">
				<h2>Portfolio</h2>
				<p>Some content  ssss</p>
			</div>
		</div>
		<!-- About -->
		<div id="about" class="panel">
			<div class="content">
				<h2>About</h2>
				<p>Some content  aaaa</p>
			</div>
		</div>
		<!-- Contact -->
		<div id="contact" class="panel">
			<div class="content">
				<h2>Contact</h2>
				<p>Some content cccc</p>
			</div>
		</div>
		
		<div id="header">
			<h1>Page Transitions with CSS3</h1>
			<ul id="navigation">
				<li><a id="link-home" href="#home">Home</li>
				<li><a id="link-portfolio" href="#portfolio">Portfolio</li>
				<li><a id="link-about" href="#about">About</li>
				<li><a id="link-contact" href="#contact">Contact</li>
			</ul>
		</div>

 简单解释:    由于Home这个页面作为底部,不用具有动画效果,所以比其他少了一层Div,换句话来说类panel具有transition属性。至于为什么菜单栏放在最底     下呢,是为了在后面使用兄弟选择器~。

接着是CSS:

 

#header{
	position:absolute;
	z-index:2000;
	width:235px;
	top:50px;
}
#header h1{
	font-size:30px;
	font-weight:400;
	text-transform:uppercase;
	color:rgba(255,255,255,.9);
	text-shadow:0 1px 1px rgba(0,0,0,.3);
	padding:20px;
	background:#000;
}
#navigation{
	margin-top:20px;
	width:235px;
	display:block;
	list-style:none;
	z-index:3;
}
#navigation a{
	color:#444;
	display:block;
	background:#fff;
	background:rgba(255,255,255,.9);
	line-height:50px;
	padding:0 20px;
	text-transform:uppercase;
	margin-bottom:6px;
	box-shadow:1px 1px 2px rgba(0,0,0,.2);
	-moz-box-shadow:1px 1px 2px rgba(0,0,0,.2);
	-webkit-box-shadow:1px 1px 2px rgba(0,0,0,.2);
	-ms-box-shadow:1px 1px 2px rgba(0,0,0,.2);
	-o-box-shadow:1px 1px 2px rgba(0,0,0,.2);
}
#navigation a:hover{
	background:#ddd;
}

 这个是菜单栏的定位。

.content{
	right:40px;
	left:280px;
	top:0;
	position:absolute;
	padding-bottom:30px;
}
.content h2{
	font-size:110px;
	padding:10px 0 20px 0;
	margin-top:52px;
	color:#fff;
	color:rgba(255,255,255,.9);
	text-shadow:0 1px 1px rgba(0,0,0,.3);
}
.content p{
	font-size:18px;
	padding:10px;
	line-height:24px;
	color:#fff;
	display:inline-block;
	background:black;
	padding:10px;
	margin:3px 0;
}

 这个是页面内容的定位。

.panel{
	min-width:100%;
	height:98%;
	overflow-y:auto;
	overflow-x:hidden;
	margin-top:-150%;
	position:absolute;
	background:#000;
	box-shadow:0 4px 7px rgba(0,0,0,.6);
	-moz-box-shadow:0 4px 7px rgba(0,0,0,.6);
	-webkit-box-shadow:0 4px 7px rgba(0,0,0,.6);
	-ms-box-shadow:0 4px 7px rgba(0,0,0,.6);
	-o-box-shadow:0 4px 7px rgba(0,0,0,.6);
	z-index:2;
	-webkit-transition:all .8s ease-in-out;
	-moz-transition:all .8s ease-in-out;
	-o-transition:all .8s ease-in-out;
	-ms-transition:all .8s ease-in-out;
	transition:all .8s ease-in-out;
}
.panel:target{
	margin-top:0%;
	background:#ffcb00;
}

#home:target ~ #header #navigation #link-home,
#portfolio:target ~ #header #navigation #link-portfolio,
#about:target ~ #header #navigation #link-about,
#contact:target ~ #header #navigation #link-contact{
	background:#000;
	color:#fff;
}

 这个就是实现页面切换的重要部分了,使用了:target这个伪类,它作用是匹配相关URL指向的元素,当我点击菜单栏的About时,该菜单的a元素的href="#about", 所以此时id为about的元素被匹配到。

最后:这个只是按照教程的意思我自己做的简单理解,其实还可以有千变万化的样子的,这个就要靠自己小小的脑袋了,有空发挥自己的脑子创新一下。(*^__^*)

posted @ 2012-07-25 23:44  zdsfg14  阅读(791)  评论(0编辑  收藏  举报