// Html部分
<div class="box">
<ul class="nav">
<li>H5+C3</li>
<li>jQuery</li>
<li>C语言</li>
<li>Go语言</li>
</ul>
<ul class="content">
<li class="show"><img src="C:\Users\21170\Pictures\商品图片\雪糕.png" alt=""></li>
<li><img src="C:\Users\21170\Pictures\商品图片\饼干.png" alt=""></li>
<li><img src="C:\Users\21170\Pictures\商品图片\大米.png" alt=""></li>
<li><img src="C:\Users\21170\Pictures\商品图片\饺子.png" alt=""></li>
</ul>
</div>
// CSS部分
*{
margin: 0;
padding: 0;
}
.box{
width: 440px;
height: 298px;
border: 1px solid #000;
margin: 50px auto;
}
.nav>li{
list-style: none;
width: 110px;
height: 50px;
background: orange;
text-align: center;
line-height: 50px;
float: left;
}
.nav>.current{
background: #ccc;
}
.content>li{
list-style: none;
display: none;
}
img {
width: 440px;
height: 248px;
}
.content>.show{
display: block;
}
// JS部分
// 下面写法存在bug,实际上只用下面一半的代码就可以实现选项卡的切换了
$(function(){
// 1.监听选项卡的移入事件
$(".nav>li").mouseenter(function(){
// 修改被移入选项卡的背景颜色
$(this).addClass("current")
// 获取当前移入的选项卡的索引
var index = $(this).index()
// 根据索引找到对应的图片
var $li = $(".content>li").eq(index)
// 显示找到的图片
$li.addClass("show")
})
// 2.监听选项卡的移出事件
$(".nav>li").mouseleave(function(){
// 还原选项卡的背景颜色
$(this).removeClass("current")
// 隐藏对应图片
// 获取当前移出的选项卡的索引
var index = $(this).index()
// 根据索引找到对应的图片
var $li = $(".content>li").eq(index)
// 隐藏图片
$li.removeClass("show")
})
})
// 正确写法
$(function(){
// 1.监听选项卡的移入事件
$(".nav>li").mouseenter(function(){
// 修改被移入选项卡的背景颜色
$(this).addClass("current")
// 还原其他兄弟选项卡的背景颜色 siblings可以返回除开当前选择内容的其他所有选择(排它)
$(this).siblings().removeClass("current")
// 获取当前选中的选项卡的索引
var index = $(this).index()
// 根据索引找到对应的图片
var $li = $(".content>li").eq(index)
// 隐藏非当前的其他图片
$li.siblings().removeClass("show")
// 显示找到的图片
$li.addClass("show")
})
})
效果图如下:
随着Tab的改变,下面图片随之改变。