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'); })
预览:
还没有留言,还不快点抢沙发?