tab栏切换
2019-05-10 本文已影响0人
椋椋夜色
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title> tab栏切换 </title>
<!--
li标签要想有上面那根红线,那么加一个类叫active就可以了
下面的商品div要显示,就给这个div加一个selected类就可以了
-->
<style type="text/css">
* {
margin: 0;
padding: 0;
}
ul {
list-style: none;
}
.wrapper {
width: 1000px;
height: 475px;
margin: 0 auto;
margin-top: 100px;
}
.tab {
border: 1px solid #ddd;
border-bottom: 0;
height: 36px;
width: 320px;
}
.tab li {
position: relative;
float: left;
width: 80px;
height: 34px;
line-height: 34px;
text-align: center;
cursor: pointer;
border-top: 4px solid #fff;
}
.tab span {
position: absolute;
right: 0;
top: 10px;
background: #ddd;
width: 1px;
height: 14px;
overflow: hidden;
}
.products {
width: 1002px;
border: 1px solid #ddd;
height: 476px;
}
.products .main {
float: left;
display: none;
}
.products .main.selected {
display: block;
}
.tab li.active {
border-color: red;
border-bottom: 0;
}
</style>
</head>
<body>
<div class="wrapper">
<ul class="tab">
<li class="tab-item active">国际大牌<span>◆</span></li>
<li class="tab-item">国妆名牌<span>◆</span></li>
<li class="tab-item">清洁用品<span>◆</span></li>
<li class="tab-item">男士精品</li>
</ul>
<div class="products">
<div class="main selected">
<a href="###"><img src="../images/guojidapai.jpg" alt="" /></a>
</div>
<div class="main">
<a href="###"><img src="../images/guozhuangmingpin.jpg" alt="" /></a>
</div>
<div class="main">
<a href="###"><img src="../images/qingjieyongpin.jpg" alt="" /></a>
</div>
<div class="main">
<a href="###"><img src="../images/nanshijingpin.jpg" alt="" /></a>
</div>
</div>
</div>
<!--
步骤:
1.找到所有li
2.给所有li加鼠标移入事件
2.1 先排他,去掉所有的active
2.2 谁移入,让谁加一个active这个类
2.3 想要在点击事件里拿到自己的下标
2.3.1 在循环的时候把它的下标存到行内index属性
2.3.2 就能拿到自己下标
3.找到所有div
4.根据上面拿到的li的下标,找到对应的div,把div加一个类selected(记得先排他,可以跟li一起排他)
-->
<script>
// 找到所有div
var divList = document.getElementsByClassName('main');
// 找到所有的li
var liList = document.getElementsByTagName('li');
// 遍历所有的li,给它们加鼠标移入事件
for (var i = 0; i < liList.length; i++) {
//每个li的下标都存到它们自身里面
liList[i].setAttribute('index', i);
// 鼠标移入
liList[i].onmouseover = function () {
for (var j = 0; j < liList.length; j++) {
// 先让大家恢复默认
liList[j].className = "tab-item";
divList[j].className = "main";
}
// 谁移入就给谁加一个类active
this.className += " active";
//拿到移入的li的下标
var index = this.getAttribute('index');
// 你是下标几,我就找到下标几的div
divList[index].className += " selected";
}
}
</script>
</body>
</html>