CSS3侧滑导航

时间:2024-01-14 22:10:26
<!DOCTYPE>
<html>
<head>
	<meta charset="utf-8" />
	<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
	<title>CSS3侧滑导航</title>
	<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
	<style type="text/css">
	*{padding: 0;margin: 0;}
		nav{
			width: 100%;
			height: 50px;
			background-color: rgba(26,188, 156, 0.75);
			position: relative;
		}
		div{
			position: absolute;
			height: 100%;
			width: 50px;
			left: 20px;
			cursor: pointer;
			-webkit-transition: transform 1s;
			-moz-transition: transform 1s;
			-ms-transition: transform 1s;
			-o-transition: transform 1s;
			transition: transform 1s;
		}
		#hide,#show{
			display: block;
			height: 3px;
			background-color: #FFF;
			position: absolute;
			top: 50%;
			-webkit-transition: opacity .5s;
			-moz-transition: opacity .5s;
			-ms-transition: opacity .5s;
			-o-transition: opacity .5s;
			transition: opacity .5s;
		}
		#show{
			width: 20px;
			left: 15px;
			opacity: 0;
		}
		#hide{
			width: 30px;
			left: 10px;
			margin-top: -1.5px;
		}
		#hide::before,#hide::after,#show::before,#show::after{
			content: "";
			display: block;
			height: 3px;
			background-color: #FFF;
			position: absolute;
		}
		#hide::before,#hide::after{
			width: 30px;
		}
		#show::before,#show::after{
			width: 25px;
		}
		#hide::before,#show::before{
			top: -10px;
		}
		#hide::after,#show::after{
			top: 10px;
		}
		#show::before{
			 -webkit-transform: rotate(35deg) translateX(5px);
			 -moz-transform: rotate(35deg) translateX(5px);
			 -ms-transform: rotate(35deg) translateX(5px);
			 -o-transform: rotate(35deg) translateX(5px);
			 transform: rotate(35deg) translateX(5px);
		}
		#show::after{
			  -webkit-transform: rotate(-35deg) translateX(5px);
			 -moz-transform: rotate(-35deg) translateX(5px);
			 -ms-transform: rotate(-35deg) translateX(5px);
			 -o-transform: rotate(-35deg) translateX(5px);
			 transform: rotate(-35deg) translateX(5px);
		}
		ul{
			list-style: none;
			background-color: #455552;
			position: absolute;
			top: 50px;
			left: -200px;
			width: 74px;
			-webkit-transition: all .5s ease-in-out;
			-moz-transition: all .5s ease-in-out;
			-ms-transition: all .5s ease-in-out;
			-o-transition: all .5s ease-in-out;
			transition: all .5s ease-in-out;
		}
		li{
			margin: 0;
			padding: 0;
			position: relative;
			text-align: center;
		}
		a{
			text-decoration: none;
			color:#FFF;
			display: inline-block;
			height: 40px;
			line-height: 40px;
		}
		li:hover{
			background-color: rgba(26,188, 156, 0.75);
		}
	</style>
</head>
<body>
	<nav>
		<div id="toggleMenu">
			<span id="hide"></span>
			<span id="show"></span>
		</div>
		<ul id="list">
			<li>
				<a href="#">首页</a>
			</li>
			<li>
				<a href="#">问题</a>
			</li>
			<li>
				<a href="#">文章</a>
			</li>
			<li>
				<a href="#">关注</a>
			</li>
			<li>
				<a href="#">发现</a>
			</li>
		</ul>
	</nav>
	<script type="text/javascript">
		var toggle = document.getElementById("toggleMenu");
		var list = document.getElementById("list");
		var hide = document.getElementById("hide");
		var show = document.getElementById("show");
		var isHidden = true;

		window.onload = function() {
			toggle.onclick=function(){
				if(isHidden){
					list.style.left="0px";
					isHidden = false;
					hide.style.opacity=0;
					this.style.mozTransform = "rotate(180deg)";
					this.style.msTransform = "rotate(180deg)";
					this.style.oTransform = "rotate(180deg)";
					this.style.webkitTransform = "rotate(180deg)";
					this.style.transform = "rotate(180deg)";
					show.style.opacity=1;
				}else{
					list.style.left="-200px";
					isHidden = true;
					hide.style.opacity=1;
					this.style.mozTransform = "rotate(0deg)";
					this.style.msTransform = "rotate(0deg)";
					this.style.oTransform = "rotate(0deg)";
					this.style.webkitTransform = "rotate(0deg)";
					this.style.transform = "rotate(0deg)";
					show.style.opacity=0;
				}
			}
		}
	</script>
</body>
</html>