JS实现选项卡的切换
选项卡的内容切换
·
选项卡的HTML结构部分如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<div id="tab" class="tab">
<ul id='ul'>
<li class="active">选项1</li>
<!-- 选项1为默认选中状态 -->
<li>选项2</li>
<li>选项3</li>
</ul>
<div class="cont" style="display: block;">我是内容1</div>
<!-- 内容一为默认显示状态,其他内容均隐藏 -->
<div class="cont">我是内容2</div>
<div class="cont">我是内容3</div>
</div>
</body>
</html>
此时代码如下结果如下:
CSS代码部分如下,引用时需要将其引入HTML文件。
* {
margin: 0;
padding: 0;
list-style: none;
}
.tab {
width: 300px;
height: 300px;
border: 2px solid red;
margin: 100px auto;
position: relative;
}
.tab ul {
overflow: hidden;
border-bottom: 2px solid #ccc;
}
.tab ul li {
height: 30px;
line-height: 30px;
float: left;
background-color: skyblue;
padding: 0 10px;
margin: 0 10px;
}
.tab .cont {
width: 100%;
height: 100%;
position: absolute;
display: none;/*令选项卡内容隐藏*/
}
/*选项卡被选择状态的class类*/
.active {
color: red;
}
此时代码运行结果如下:
需求是点击选项卡,选项卡变为选择状态,并显示相关内容。
而其他选项卡为未被选中状态,其内容隐藏。
完整的JS代码如下,引用时需要将JS代码段放进在body结构内,并置于HTML元素之后。
<script type="text/javascript">
var otab=document.getElementById('tab');
var ali=document.getElementsByTagName('li');
//获取选项卡数组
var acont=document.getElementsByClassName('cont');
//获取选项卡相关内容的数组
//遍历选项卡数组
for(var i =0 ; i < ali.length ; i++){
ali[i].index=i;
ali[i].onclick=function(){
//此处的内部for循环,作用为:
//使得之前被选中的选项卡取消选中
//使得之前显示的选项卡内容全部隐藏display为none
//实现不会有两个选项卡同时显示
for(var j=0;j<ali.length;j++ ){
ali[j].className="";
acont[j].style.display='none';
}
//当i项遇到点击事件时,i项选项卡为avtive选择状态,其内容为block显示状态
this.className="active";
acont[this.index].style.display="block";
}
}
</script>
最后结果可以实现选项卡的切换:
更多推荐
所有评论(0)
您需要登录才能发言
加载更多