二级菜单导航栏(左侧)

目标:

实现左侧的二级菜单导航栏,自适应效果

效果图:

在这里插入图片描述

项目演示:

点击跳转到演示地址

代码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>左侧导航栏</title>
	</head>
	<style>
		body{
			margin: 0;
			padding: 0;
			min-width: 100vw;
			min-height: 100vh;
		}
		.big_box{
			display: flex;
		}
		.left_daohang{
			width: 20%;
			height: 100vh;
			min-width: 260px;/* 设置最小宽度防止文字被压缩 */
			background-color: #4b6383;
			overflow: auto;
		}
		.item1{
			width: 100%;
			height: 80px;
			line-height: 80px;
			display: flex;
			justify-content: space-between;
			cursor: pointer;
		}
		.item1:hover{
			background-color: #15305a;
		}
		.item1_text{
			font-size: 22px;
			color: white;
			overflow: hidden;/*超出隐藏*/
			text-overflow: ellipsis;/*省略号*/
			white-space: nowrap;/*设置文本不换行*/
		}
		.item1_img{
			width: 30px;
			height: 30px;
			display: inline-block;
			margin: auto 20px;
		}
		.item1_img1{
			background: url(https://static-7184a2f2-3b0b-407a-adc8-4d450f35c1e7.bspapp.com/left_dahanglan/icon/b1.png) no-repeat center;
			background-size: 100% 100%;
		}
		.item1_img2{
			background: url(https://static-7184a2f2-3b0b-407a-adc8-4d450f35c1e7.bspapp.com/left_dahanglan/icon/b2.png) no-repeat center;
			background-size: 100% 100%;
		}
		.item1_img3{
			background: url(https://static-7184a2f2-3b0b-407a-adc8-4d450f35c1e7.bspapp.com/left_dahanglan/icon/b3.png) no-repeat center;
			background-size: 100% 100%;
		}
		.item1_img4{
			background: url(https://static-7184a2f2-3b0b-407a-adc8-4d450f35c1e7.bspapp.com/left_dahanglan/icon/b4.png) no-repeat center;
			background-size: 100% 100%;
		}
		.you{width: 30px;
			height: 30px;
			float: right;
			background: url(https://static-7184a2f2-3b0b-407a-adc8-4d450f35c1e7.bspapp.com/left_dahanglan/icon/you.png) no-repeat center;
			background-size: 100% 100%;
		}
		.item1_item2{
			cursor: pointer;
			display: none;
		}
		.item2{
			margin:20px auto;
		}
		.item2:hover{
			background-color: #15305a;
		}
		.item2_text{
			font-size: 20px;
			color: white;
			margin-left: 25%;
		}
		
		.content{
			width: 80%;
			height: 100vh;
			background-color: #cccccc;
		}
	</style>
	<body>
		<div class="big_box">
			<div class="left_daohang">
				<!-- 第一块:一级标题1 -->
				<div class="item1" name='1'>
					<div class="item1_img1 item1_img"></div>
					<span class="item1_text">一级标题1111111</span>
					<div class="you item1_img"></div>
				</div>
				<div class="item1_item2" >
					<div class="item2">
						<span class="item2_text">二级标题1</span>
					</div>
					<div class="item2">
						<span class="item2_text">二级标题2</span>
					</div>
					<div class="item2">
						<span class="item2_text">二级标题3</span>
					</div>
				</div>
				
				<!-- 第1.5块:临时插入无二级标题 -->
				<div class="item1">
					<div class="item1_img4 item1_img"></div>
					<span class="item1_text">一级标题1.5</span>
					<div class="you item1_img"></div>
				</div>
				<div class="item1_item2">
					<!-- 	这部分不能删 -->
				</div>
				
			<!-- 第二块:一级标题2 -->
				<div class="item1">
					<div class="item1_img2 item1_img"></div>
					<span class="item1_text">一级标题2</span>
					<div class="you item1_img"></div>
				</div>
				<div class="item1_item2">
					<div class="item2">
						<span class="item2_text">二级标题4</span>
					</div>
					<div class="item2">
						<span class="item2_text">二级标题5</span>
					</div>
					<div class="item2">
						<span class="item2_text">二级标题6</span>
					</div>
					<div class="item2">
						<span class="item2_text">二级标题7</span>
					</div>
				</div>
				
				<!-- 第三块:一级标题3 -->
				<div class="item1">
					<div class="item1_img3 item1_img"></div>
					<span class="item1_text">一级标题3</span>
					<div class="you item1_img"></div>
				</div>
				<div class="item1_item2">
					<div class="item2">
						<span class="item2_text">二级标题8</span>
					</div>
					<div class="item2">
						<span class="item2_text">二级标题9</span>
					</div>
				</div>
				
				<!-- 第三块:一级标题3 -->
				<div class="item1">
					<div class="item1_img3 item1_img"></div>
					<span class="item1_text">一级标题3</span>
					<div class="you item1_img"></div>
				</div>
				<div class="item1_item2">
					<div class="item2">
						<span class="item2_text">二级标题8</span>
					</div>
					<div class="item2">
						<span class="item2_text">二级标题9</span>
					</div>
				</div>
				
				<!-- 第三块:一级标题3 -->
				<div class="item1">
					<div class="item1_img3 item1_img"></div>
					<span class="item1_text">一级标题3</span>
					<div class="you item1_img"></div>
				</div>
				<div class="item1_item2">
					<div class="item2">
						<span class="item2_text">二级标题8</span>
					</div>
					<div class="item2">
						<span class="item2_text">二级标题9</span>
					</div>
				</div>
				
				<!-- 第三块:一级标题3 -->
				<div class="item1">
					<div class="item1_img3 item1_img"></div>
					<span class="item1_text">一级标题3</span>
					<div class="you item1_img"></div>
				</div>
				<div class="item1_item2">
					<div class="item2">
						<span class="item2_text">二级标题8</span>
					</div>
					<div class="item2">
						<span class="item2_text">二级标题9</span>
					</div>
				</div>
				
				<!-- 第三块:一级标题3 -->
				<div class="item1">
					<div class="item1_img3 item1_img"></div>
					<span class="item1_text">一级标题3</span>
					<div class="you item1_img"></div>
				</div>
				<div class="item1_item2">
					<div class="item2">
						<span class="item2_text">二级标题8</span>
					</div>
					<div class="item2">
						<span class="item2_text">二级标题9</span>
					</div>
				</div>
			</div>
		
			<div class="content">
			
			</div>
		</div>
	</body>
<script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
	
	<script>
		$(document).ready(function(){
			
			for(let i = 0 ; i<$('.item1').length ; i++){
				if($('.item1_item2')[i].children.length==0){
					$('.item1')[i].children[2].className='item1_img'
				}	
			}//遍历一级标题,如果二级标题为空则不显示图标
			
			$('.item1').click(
				function(val){
					console.log($(this).children()[1].innerText);//点击一级标题,打印点击的栏目
					$('.content').html($(this).children()[1].innerText);//在内容页显示点击的按钮文字
					if($(this).next().is(":hidden")){//如果二级导航没打开,打开它
						$(this).next().show(500);
						$(this).children('.you').css('transform','rotate(90deg)');//图片旋转90度
					}
					else if($(this).next().children().length==0){}//如果没有二级导航,没操作
					else{//如果二级导航打开了,关闭它
						$(this).next().hide(500)
						$('.you').css('transform','rotate(0deg)');//图片回到原来样子
					}	
				}
			);
			
			$('.item2').click(//点击二级标题触发事件
			     function(val){
					 console.log($(this).children()[0].innerText);
					 $('.content').html($(this).children()[0].innerText);
				 }
			)
			
		})
	</script>
</html>

说明:

1、 当屏幕缩小到一定程度,为了防止字体被压缩,变成省略号。
2、 设置最小宽度,防止页面被压缩没了。
3、左侧导航栏使用vh来获取屏幕的高度
  • 31
    点赞
  • 244
    收藏
    觉得还不错? 一键收藏
  • 20
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值