使用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的元素被匹配到。

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

你可能感兴趣的:(transition)