jquery实现具有嵌套功能的选项卡


Posted in Javascript onFebruary 12, 2016

关于选项卡功能大家一定都不会陌生,无非就是鼠标点击或者悬浮能够切换相关的内容。
通常情况下,大家见到的选项卡都是没有嵌套功能的,也就是说就是完成了一层切换效果,本章节分享一段代码实例,实现了选项卡的嵌套功能,也就是选项卡中嵌套有选项卡功能,也就能够容纳更多的内容。
代码如下:

<head>
<meta charset="gb2312">
<title>jquery选项卡</title>
<style type="text/css">
body, ul, li, div, a{
 margin:0px;
 padding:0px;
}
body{
 margin-top:10px;
 margin-left:15px;
}
#all{
 border-left:1px solid #ccc;
 border-right:1px solid #ccc;
 border-bottom:1px solid #ccc;
 width:255px;
}
#title li{
 float:left;
 list-style:none;
 width:50px;
 border-top:2px solid #f60;
 border-right:1px solid #ccc;
 text-align:center;
 padding-top:3px;
}
#title li:last-child{
 border-right:1px solid #fff;
}
.new{
 border-bottom:1px solid #fff;
 color:#f60;
}
.old{
 border-bottom:1px solid #ccc;
}
#content{
 clear:both;
}
#content ul{
 margin-left:5px;
 list-style:none;
 float:left;
}
#content li{
 width:40px;
 height:30px;
 background-color:#f60;
 text-align:center;
 color:#fff;
}
.inContent{
 width:205px;
 height:90px;
 background-color:#f6c;
 margin-left:50px;
}
</style>
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
<script type="text/javascript"> 
$(function(){ 
 $("#title li:first").addClass("new").siblings().addClass("old"); 
 $("#content div:first").show().siblings().hide(); 
 $(".inContent:first").show().siblings().hide(); 
 $("#title li").click(function(){ 
  $(this).addClass("new").removeClass("old").siblings().addClass("old").removeClass("new"); 
  $(".info").hide().eq($("#title li").index(this)).show(); 
  $(".info div:first-child").show().siblings().hide(); 
 }); 
 
 $(".info li").mouseover(function(){ 
  $(this).css("color","#20f"); 
  $(".inContent").hide().eq($(".info li").index(this)).show(); 
 }); 
 $(".info li").mouseout(function(){ 
  $(this).css("color","#fff"); 
 });
}); 
</script>
</head>
<body>
<div id="all">
 <div id="title">
  <ul>
   <li>要闻</li>
   <li>国内</li>
   <li>时尚</li>
   <li>旅游</li>
   <li>科技</li>
  </ul>
 </div>
 <div id="content">
  <div style="clear:both;" class="info">
   <ul>
    <li>01</li>
    <li>02</li>
    <li>03</li>
   </ul>
   <div>
    <div class="inContent">A1</div>
    <div class="inContent">B1</div>
    <div class="inContent">C1</div>
   </div>
  </div>
  <div class="info">
   <ul>
    <li>01</li>
    <li>02</li>
    <li>03</li>
   </ul>
   <div>
    <div class="inContent">A2</div>
    <div class="inContent">B2</div>
    <div class="inContent">C2</div>
   </div>
  </div>
  <div class="info">
   <ul>
    <li>01</li>
    <li>02</li>
    <li>03</li>
   </ul>
   <div>
    <div class="inContent">A3</div>
    <div class="inContent">B3</div>
    <div class="inContent">C3</div>
   </div>
  </div>
  <div class="info">
   <ul>
    <li>01</li>
    <li>02</li>
    <li>03</li>
   </ul>
   <div>
    <div class="inContent">A4</div>
    <div class="inContent">B4</div>
    <div class="inContent">C4</div>
   </div>
  </div>
  <div class="info">
   <ul>
    <li>01</li>
    <li>02</li>
    <li>03</li>
   </ul>
   <div>
    <div class="inContent">A5</div>
    <div class="inContent">B5</div>
    <div class="inContent">C5</div>
   </div>
  </div>
 </div>
</div>
</body>
</html>

上面的代码实现了选项卡的嵌套功能,下面介绍一下它的实现过程。
一.实现原理:
原理其实非常的简单,其实就是大的选项卡里面套了一个小的选项卡,先进行大的选项卡的切换,然后再进行小的选项卡的切换,就是这么简单,这里就不多介绍了,具体可以看代码注释。
二.代码注释:
1.$(function(){}),文档结构完全加载完毕再去执行函数中的代码。
2.$("#title li:first").addClass("new").siblings().addClass("old"),在默认状态下,为id属性值为title的元素下第一个li元素添加名为new的class类,然后为其他的兄弟li元素添加old的class类。也就是在默认状态下横向的选项卡第一个字体是红色,其他的都是黑色。
3.$("#content div:first").show().siblings().hide(),将id为content下第一个div设置为显示,其他的兄弟元素隐藏。
4.$(".inContent:first").show().siblings().hide(),将class属性值为inContent的第一个元素设置为显示,兄弟元素隐藏。
5.$("#title li").click(function(){}),为相应的li元素注册click事件处理函数。
6.$(this).addClass("new").removeClass("old").siblings().addClass("old").removeClass("new"),如果点击顶部的li元素的话,会为当前li元素添加名为new的class类,然后删除名为old的class类,然后将其他兄弟元素添加名为old的class类,删除名为new的class类。
7.$(".info").hide().eq($("#title li").index(this)).show(),首先将class名为info的元素隐藏,然后将对应索引的元素显示。
8.$(".info div:first-child").show().siblings().hide(),将info下面的div元素下的第一个子元素设置为显示,其他的元素隐藏。

以上就是本文的详细内容,希望对大家实现jquery选项卡有所帮助。

Javascript 相关文章推荐
IE 缓存策略的BUG的解决方法
Jul 21 Javascript
什么是Node.js?Node.js详细介绍
Jun 01 Javascript
node.js中的events.emitter.listeners方法使用说明
Dec 10 Javascript
javascript实现表单提交后,提交按钮不可用的方法
Apr 18 Javascript
jQuery中$.extend()用法实例
Jun 24 Javascript
使用HTML5+Boostrap打造简单的音乐播放器
Aug 05 Javascript
微信js-sdk地理位置接口用法示例
Oct 12 Javascript
AngularJS路由切换实现方法分析
Mar 17 Javascript
ES6中新增的Object.assign()方法详解
Sep 22 Javascript
Vue.js在数组中插入重复数据的实现代码
Nov 17 Javascript
webpack里使用jquery.mCustomScrollbar插件的方法
May 30 jQuery
JavaScript制作3D旋转相册
Aug 02 Javascript
基于jquery实现动态竖向柱状条特效
Feb 12 #Javascript
原生javascript实现自动更新的时间日期
Feb 12 #Javascript
原生javascript实现图片无缝滚动效果
Feb 12 #Javascript
JavaScript实现点击单元格改变背景色的方法
Feb 12 #Javascript
JavaScript实现弹出模态窗体并接受传值的方法
Feb 12 #Javascript
JavaScript判断表单为空及获取焦点的方法
Feb 12 #Javascript
利用JS生成博文目录及CSS定制博客
Feb 10 #Javascript
You might like
用PHP解决的一个栈的面试题
2014/07/02 PHP
PHP实现PDO操作mysql存储过程示例
2019/02/13 PHP
tp5 sum某个字段相加得到总数的例子
2019/10/18 PHP
javascript中通过arguments参数伪装方法重载
2014/10/08 Javascript
jQuery元素选择器用法实例
2014/12/23 Javascript
使用jQuery UI库开发Web界面的简单入门指引
2016/04/22 Javascript
bootstrap-wysiwyg结合ajax实现图片上传实时刷新功能
2016/05/27 Javascript
AngularJs  E2E Testing 详解
2016/09/02 Javascript
基于jQuery实现滚动切换效果
2016/12/02 Javascript
nodejs判断文件、文件夹是否存在及删除的方法
2017/11/10 NodeJs
jQuery中ajax请求后台返回json数据并渲染HTML的方法
2018/08/08 jQuery
js逆向解密之网络爬虫
2019/05/30 Javascript
JavaScript进制转换实现方法解析
2020/01/18 Javascript
使用vue编写h5公众号跳转小程序的实现代码
2020/11/27 Vue.js
Python比较文件夹比另一同名文件夹多出的文件并复制出来的方法
2015/03/05 Python
Python中条件判断语句的简单使用方法
2015/08/21 Python
浅谈python中scipy.misc.logsumexp函数的运用场景
2016/06/23 Python
python中闭包Closure函数作为返回值的方法示例
2017/12/17 Python
python钉钉机器人运维脚本监控实例
2019/02/20 Python
python 将有序数组转换为二叉树的方法
2019/03/26 Python
python实现邮件自动发送
2019/08/10 Python
Python Tornado之跨域请求与Options请求方式
2020/03/28 Python
pandas to_excel 添加颜色操作
2020/07/14 Python
Html5页面二次分享的实现
2018/07/30 HTML / CSS
成考报名单位证明范本
2014/01/16 职场文书
家长会邀请书
2014/01/25 职场文书
顶撞领导检讨书
2014/01/29 职场文书
聊城大学毕业生自荐书
2014/02/01 职场文书
经典团队口号
2014/06/06 职场文书
2015年化验员工作总结
2015/04/10 职场文书
2015年营业员工作总结
2015/04/23 职场文书
十二生肖观后感
2015/06/12 职场文书
公司仓库管理制度
2015/08/04 职场文书
如何判断pytorch是否支持GPU加速
2021/06/01 Python
基于Redis zSet实现滑动窗口对短信进行防刷限流的问题
2022/02/12 Redis
vue使用element-ui按需引入
2022/05/20 Vue.js