如下直接给出HTML,CSS,等代码,不做过多解释,只看javaScript代码,主做笔记,如有不懂,留言我会解答
* { 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.active { display: block; } .tab li.active { border-color: red; border-bottom: 0; }
<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 active">
<a href="###"><img src="imgs/guojidapai.jpg" alt="" /></a>
</div>
<div class="main">
<a href="###"><img src="imgs/guozhuangmingpin.jpg" alt="" /></a>
</div>
<div class="main">
<a href="###"><img src="imgs/qingjieyongpin.jpg" alt="" /></a>
</div>
<div class="main">
<a href="###"><img src="imgs/nanshijingpin.jpg" alt="" /></a>
</div>
</div>
</div>
js代码如下:会进行每一步分析
了解导航切换运行的原理,以及数组的索引
let tab = document.querySelector('.tab')
let lis = document.querySelectorAll('.tab .tab-item')
let main = document.querySelectorAll('.main')
// 因为lis索引的为全部.tab-item,所以此处需要用到循环遍历
for (let i = 0; i < lis.length; i++) {
console.log(lis[i])
// 给每一个lis添加点击事件,切记lis[i]
lis[i].addEventListener('click', function () {
console.log(i)
for (let i = 0; i < main.length; i++) {
// 清空li头部的样式
lis[i].className = '';
}
// 给每一个小li 添加头部样式
this.className = 'active'
// 清空内容框的图片内容
for (let i = 0; i < main.length; i++) {
main[i].style.display = 'none'
}
//显示内容
main[i].style.display = 'block'
})
}