<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>侧边手风琴导航栏</title>
<style type=text/css>
*{
margin: 0;
padding: 0;
}
html,body{
height: 100%;
}
.wrap{
height: 100%;
width: 260px;
background-color: #363a45;
text-align: center;
color: #fff;
}
.header{
height: 60px;
background-color: #44495a;
font-size: 20px;
line-height: 60px;
}
.nav{
width: 250px;
margin: 10px 5px;
}
.nav-list h2{
position:relative;
padding: 15px 0;
background-color: #3889d4;
font-size: 15px;
}
.nav-list h2:hover{
background-color: RoyalBlue;
color: #cdcdcd;
}
.nav-list h2.on{ /*设置h2点击后类on属性,点击后h2颜色变化*/
background-color: #393c4a;
}
.nav-list i{
position:absolute;
right: 10px;
top: 16px;
border: 8px solid transparent;
border-left-color: #fff;
transform-origin: 1px 7px; /*设置小三角旋转基点*/
transition: .8s; /*旋转过渡时间*/
}
.nav-list i.on{ /*设置点击后添加的类on属性(小三角旋转角度)*/
transform: rotate(90deg);
}
.hide{
height: 0;
overflow: hidden;
margin-bottom: 5px;
transition: 1s;
}
.hide h5{
padding: 10px 0;
background-color: #282c3a;
border-bottom: 1px solid #42495d;
}
.hide h5:hover{
background-color: #03B9FA;
}
</style>
</head>
<body>
<div class="wrap">
<div class="header">大标题</div>
<div class="nav">
<ul>
<li class="nav-list">
<h2><div></div>
分类标题一
<i></i>
</h2>
<div class="hide">
<h5>小标题1</h5>
<h5>小标题2</h5>
<h5>小标题3</h5>
<h5>小标题4</h5>
<h5>小标题5</h5>
<h5>小标题6</h5>
</div>
</li>
<li class="nav-list">
<h2>分类标题二
<i></i> <!--制作小三角-->
</h2>
<div class="hide">
<h5>小标题1</h5>
<h5>小标题2</h5>
<h5>小标题3</h5>
<h5>小标题4</h5>
<h5>小标题5</h5>
<h5>小标题6</h5>
</div>
</li>
<li class="nav-list">
<h2>分类标题三
<i></i>
</h2>
<div class="hide">
<h5>小标题1</h5>
<h5>小标题2</h5>
<h5>小标题3</h5>
<h5>小标题4</h5>
<h5>小标题5</h5>
<h5>小标题6</h5>
</div>
</li>
</ul>
</div>
</div>
<script>
var aList = document.querySelectorAll('.nav-list h2'); //依次获取需要h2,.hide,i标签
var aHide = document.querySelectorAll('.hide');
var oIcon = document.querySelectorAll('.nav-list i');
var lastIndex = 0; //自定义变量监控点击后的下标
for(var i=0;i<aList.length;i++){
aList[i].index = i; //自定义属性保存下标
aList[i].onclick = function() {
//判断是否二次点击同一栏
if(aHide[this.index].style.height =='' || aHide[this.index].style.height == '0px'){
aHide[lastIndex].style.height = '0';
aList[lastIndex].className = '';
oIcon[lastIndex].className = '';
//设置当前样式
aHide[this.index].style.height = '235px';
aList[this.index].className = 'on'; //点击后为h2添加class = 'on'
oIcon[this.index].className = 'on';
}
else{
aHide[this.index].style.height = '0';
aList[this.index].className = '';
oIcon[this.index].className = '';
}
lastIndex = this.index; // 保存当前下标
}
}
</script>
</body>
</html>
侧边手风琴导航栏
最新推荐文章于 2023-02-04 17:09:32 发布