效果:
思想:
1.点击每个tab时。要先用排他思想,使得所有li不加上背景,再让点击的tab加上某个类。
2.上面的tab与下面显示内容的页面是一一对应的。因此,可以使用自定义属性,使tab加上一个index索引,这样就能知道每次点击的是哪一个tab了。
3.最后仍然使用排他思想,当点击tab时,先让所有的内容都不显示,再让对应的内容进行显示。
代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>tab切换栏的制作</title>
<style>
*{
padding: 0;
margin: 0;
}
.head{
width: 1000px;
height: 30px;
background-color: pink;
margin: 10px auto;
}
ul{
width: 100%;
height: 100%;
}
li {
display: inline-block;
width: 100px;
height: 100%;
list-style: none;
line-height: 30px;
text-align: center;
cursor: pointer;
}
.bg {
color: white;
background-color: red;
}
.item {
display: none;
}
</style>
</head>
<body>
<div class="head">
<ul>
<li>商品详情</li>
<li>商品详情</li>
<li>商品详情</li>
<li>商品详情</li>
<li>商品详情5</li>
</ul>
<div class="detail">
<div class="item">item1</div>
<div class="item">item2</div>
<div class="item">item3</div>
<div class="item">item4</div>
<div class="item">item5</div>
</div>
<script>
var lis = document.querySelectorAll('li');
// 鼠标经过时,li加入className,同时让其他li去掉该类。
// 绑定事件
var detail = document.querySelector('.detail');
var items = detail.querySelectorAll('.item');
for(var i=0;i<lis.length;i++){
lis[i].setAttribute('index',i);
var index;
lis[i].onclick = function(){
for(var j=0;j<lis.length;j++){
lis[j].className='';
items[j].style.display = 'none';
}
this.className='bg';
index = this.getAttribute('index');
items[index].style.display='block';
}
}
</script>
</div>
</body>
</html>
|