带你手写一个响应式导航栏

响应式导航涉及到的知识:

  1. 媒体查询
  2. css3动画
  3. javascript

效果截图:
在这里插入图片描述
下面是代码:

<header id="header">
			<div class="container">
				<div class="left">
					<img class="left-image" width="120" height="40" src="http://www.cambricon.com/dayrui/statics/default/images/logo.png" />
				</div>
				<div class="center">
					<div class="hide-button" id="hideButton">
						<img src="img/Buttonicon.png" width="30p" height="30" />
					</div>
					<ul class="nav-list" id="navlist">
					 	<li class="nav-item">首页</li>
					 	<li class="nav-item">产品中心</li>
					 	<li class="nav-item">新闻中心</li>
					 	<li class="nav-item">开发者</li>
					 	<li class="nav-item">关于我们</li>
					 	<li class="nav-item">加入我们</li>
					 	<li class="nav-item">联系我们</li>
					</ul>
				</div>
				<div class="right">				
					<a class="right-item"><img src="http://www.cambricon.com/dayrui/statics/default/images/nav_right_ino1.png"/></a>
					<a class="right-item"><img src="http://www.cambricon.com/dayrui/statics/default/images/nav_right_ino2.png"/></a>
					<a class="right-item"><img src="http://www.cambricon.com/dayrui/statics/default/images/nav_right_ino3.png"/></a>
				</div>
			</div>
		</header>
			body{	margin: 0;	}
			#header{width: 100%;height: 60px;background: #BCE8F1;	}
			.container{max-width: 1300px;height: 60px;margin: 0 auto;			}
			.left{	float: left;width: 20%;margin-top:10px ;}
			.left-image{padding: 0 15px;display: block;margin: auto;}
			.center{float: left;width: 60%;height: 60px;}
			.right{float: right;width: 20%;height: 60px;}
			.right-item{margin-top: 10px;display: block;padding: 5px 10px;float: left;}
			.nav-list{width: 80%;margin: 0 auto;padding: 0;overflow: hidden;}
			.nav-item{color: #0179D2;font-size: 13px;font-weight: 500;list-style: none;float: left;	padding: 20px;}
			.hide-button{width: 30px;margin-top: 15px;margin-left:100%;display: none;}
			@media screen and (max-width: 1300px) {	
				.nav-list{width: 100%;}
			@media screen and (max-width: 1050px) {							 
			   .right{display: none;  }
			   .nav-list{position: fixed;top: 60px;	right: -200px;max-width: 200px;background-color: indigo; }	   			
			   .nav-item{float: none;color: #fff; }
			   .hide-button{ display: block; }			   			 
			}	 			 		
			   @keyframes mymove
				{
					from {right:-200px;opacity: 0;height: 0;}
					to {right:0;opacity: 1;height: 400px;}
				}
				 @keyframes youmove
				{
					from {right:0;opacity: 1;height: 400px;}
					to {right:-200;opacity: 0;height: 0;}
				}
				
window.onload=function(){
			var hideButton =document.getElementById("hideButton");	
			var navlist =document.getElementById("navlist");
			var ishide = true;		
			hideButton.onclick=function(){			
					ishide?taggle("mymove","0px"):taggle("youmove","-200px");
					ishide=!ishide;
			}
			function taggle(animation,right){
				navlist.style.animation=animation+" .5s 1";
				navlist.style.right=right;
			}						
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值