jQuery选项卡中嵌套选项卡切换效果
jQuery选项卡中嵌套选项卡切换效果

html:
<div class="wrap"> <ul> <li class="active">a</li> <li>b</li> <li>c</li> <li>d</li> </ul> <div class="cont"> <div class="inner active"> <span>a1</span> <p> <a href="javascript:;" class="active">a1</a> <a href="javascript:;">a2</a> <a href="javascript:;">a3</a> <a href="javascript:;">a4</a> <a href="javascript:;">a5</a> <a href="javascript:;">a6</a> </p> </div> <div class="inner"> <span>b1</span> <p> <a href="javascript:;" class="active">b1</a> <a href="javascript:;">b2</a> <a href="javascript:;">b3</a> <a href="javascript:;">b4</a> <a href="javascript:;">b5</a> <a href="javascript:;">b6</a> </p> </div> <div class="inner"> <span>c1</span> <p> <a href="javascript:;" class="active">c1</a> <a href="javascript:;">c2</a> <a href="javascript:;">c3</a> <a href="javascript:;">c4</a> <a href="javascript:;">c5</a> <a href="javascript:;">c6</a> </p> </div> <div class="inner"> <span>d1</span> <p> <a href="javascript:;" class="active">d1</a> <a href="javascript:;">d2</a> <a href="javascript:;">d3</a> <a href="javascript:;">d4</a> <a href="javascript:;">d5</a> <a href="javascript:;">d6</a> </p> </div> </div> </div>
创建样式表文件index.css
*{
    margin: 0;
    padding: 0;
    list-style: none;
    text-decoration: none;
}
.wrap{
    width: 800px;
    height: 400px;
    border: 2px solid blue;
    margin: 20px auto;
    display: flex;
}
.wrap>ul{
    width: 150px;
    height: 100%;
}
.wrap>ul li{
    height: 100px;
    background-color: red;
    text-align: center;
    line-height: 100px;
    color: #fff;
    font-size: 30px;
    border-bottom: 1px solid blue;
    box-sizing: border-box;
}
.wrap>ul .active{
    background-color: yellow;
    color: #fff;
}
.wrap>.cont{
    width: 650px;
    height: 400px;
    background-color: cadetblue;
    position: relative;
}
.wrap>.cont>.inner{
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    position: absolute;
    top: 0;
    left: 0;
    display: none;
}
.wrap>.cont>.inner.active{
    display: block;
}
.wrap>.cont>.inner>span{
    width: 100%;
    height: 350px;
    line-height: 350px;
    background-color: lightgreen;
    text-align: center;
    font-size: 50px;
    color: #fff;
    display: inline-block;
}
.wrap>.cont>.inner>p{
    display: flex;
}
.wrap>.cont>.inner>p>a{
    color: #fff;
    background-color: purple;
    text-align: center;
    line-height: 50px;
    flex-grow: 1;
}
.wrap>.cont>.inner>p>a.active{
    background-color: #fff;
    color: #000;
}将样式表,引入到index.html文件中,预览效果如下所示:

接着,我们开始写jquery效果,
鼠标滑过底部的a超链接时,类名叫inner的div盒子里的span的内容改变
            // 鼠标滑过底部的a超链接时,类名叫inner的div盒子里的span的内容改变
            $('.wrap .cont .inner p a').mouseenter(function(){
                // 鼠标悬停到当前a超链接时,让其高亮显示;让它的兄弟节点a不要高亮显示
                $(this).addClass('active').siblings().removeClass('active');
                // 找当前a超链接的父元素p,然后从找父元素p的上一个兄弟节点span
                // 把当前a超链接的内容$(this).html() 获取到,放置到父亲的兄弟节点span标签中
                $(this).parent().prev().html($(this).html());
            })预览效果如下所示:

接着,我们把 鼠标滑过左侧每个li,显示右侧对应的inner,inner和li下标是一致的
            // 鼠标滑过左侧每个li,显示右侧对应的inner,inner和li下标是一致的
            // 鼠标滑过左侧ul中的li的时候,右侧对应的显示对应inner中的内容
            $('.wrap ul li').mouseenter(function(){
                // 获取当前li的索引值
                var i = $(this).index();
                console.log(i);
                // 鼠标悬停到当前li时,让其高亮显示;让它的兄弟节点a不要高亮显示
                $(this).addClass('active').siblings().removeClass('active');
                // 找当前li的父元素ul的下一个兄弟节点 类名叫.cont的div
                // 到这个div中找他的子元素 类名叫.inner的div
                // 接着,我们按索引对找 对应的.inner盒子,找到后,给其添加active类,接着找.inner盒子的兄弟,让它的兄弟们不要用这个active类
                $(this).parent().next().find('.inner').eq(i).addClass('active').siblings().removeClass('active');
            })预览:

 吐槽一下
		   		
          
还没有留言,还不快点抢沙发?