tap栏常见于大部分网页,下面是我写的简易tap栏及js效果
html代码
<div class="top">
<ul class="toplist">
<li class="current">1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
<div class="botton">
<div class="item" style="display:block ;">1111111</div>
<div class="item">22222222222</div>
<div class="item">3333333333</div>
<div class="item">44444444444</div>
<div class="item">555555555555555</div>
</div>
</div>
css代码
* {
margin: 0;
padding: 0;
}
.top {
width: 1000px;
height: 200px;
margin: 0 auto;
}
.toplist {
list-style-type: none;
float: left;
width: 100%;
height: 50px;
background-color: rgb(122, 120, 120);
color: black;
}
.toplist li {
float: left;
height: 50px;
width: 10%;
text-align: center;
line-height: 50px;
cursor: pointer;
}
.current {
background-color: orangered;
color: #ffff;
}
.item {
display: none;
}
js代码
<script>
//点击li变背景色,其余不变(排他思想)
var top_list = document.querySelector('.toplist');
var lis = top_list.querySelectorAll('li'); //获取每一个li
var items = document.querySelectorAll('.item');
console.log(items);
//for循环绑定点击事件
for (var i = 0; i < lis.length; i++) {
//给每一个li添加自定义属性
lis[i].setAttribute('index', i);
lis[i].onclick = function () {
//清除其他li的class
for (var i = 0; i < lis.length; i++) {
lis[i].className = '';
}
this.className = 'current';
// 下面的显示模块
var index = this.getAttribute('index'); //获取index内容
for (var i = 0; i < items.length; i++) {
items[i].style.display = ''; //排他思想,清除其余元素diplay
}
items[index].style.display = 'block'; //点击让相应序号里面内容显示出来
}
}
</script>
结果如下: