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 相关文章推荐
原生Js与jquery的多组处理, 仅展开一个区块的折叠效果
Jan 09 Javascript
JavaScript中valueOf函数与toString方法深入理解
Dec 02 Javascript
javascript类型转换使用方法
Feb 08 Javascript
jQuery EasyUI Dialog拖不下来如何解决
Sep 28 Javascript
Bootstrap+jfinal退出系统弹出确认框的实现方法
May 30 Javascript
Bootstrap CSS布局之按钮
Dec 17 Javascript
bootstrap timepicker在angular中取值并转化为时间戳
Jun 13 Javascript
axios发送post请求,提交图片类型表单数据方法
Mar 16 Javascript
JS+HTML5实现获取手机验证码倒计时按钮
Aug 08 Javascript
详解Vue项目中实现锚点定位
Apr 24 Javascript
JavaScript使用面向对象实现的拖拽功能详解
Jun 12 Javascript
JS实现简单控制视频播放倍速的实例代码
Apr 18 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跨时区(UTC时间)应用解决方案
2013/01/11 PHP
php中debug_backtrace、debug_print_backtrace和匿名函数用法实例
2014/12/01 PHP
windows7下php开发环境搭建图文教程
2015/01/06 PHP
php设计模式之迭代器模式实例分析【星际争霸游戏案例】
2020/04/07 PHP
js中几种去掉字串左右空格的方法
2006/12/25 Javascript
JQuery实现table行折叠效果以JSON做数据源
2014/05/26 Javascript
js实现从中间开始往上下展开网页窗口的方法
2015/03/02 Javascript
jquery插件validation实现验证身份证号等
2015/06/04 Javascript
浅谈javascript运算符——条件,逗号,赋值,()和void运算符
2016/07/15 Javascript
js实现简单的碰壁反弹效果
2016/08/30 Javascript
微信小程序 跳转方式总结
2017/04/20 Javascript
利用jquery如何从json中读取数据追加到html中
2017/12/01 jQuery
create-react-app构建项目慢的解决方法
2018/03/14 Javascript
原生js实现随机点名
2020/07/05 Javascript
JavaScript实现alert弹框效果
2020/11/19 Javascript
JavaScript实现移动端拖动元素
2020/11/24 Javascript
Vue 简单实现前端权限控制的示例
2020/12/25 Vue.js
[01:05]主宰至宝剑心之遗
2017/03/16 DOTA
python用字典统计单词或汉字词个数示例
2014/04/22 Python
Python函数式编程指南(四):生成器详解
2015/06/24 Python
Django框架验证码用法实例分析
2019/05/10 Python
python pygame实现滚动横版射击游戏城市之战
2019/11/25 Python
Python matplotlib修改默认字体的操作
2020/03/05 Python
python numpy库np.percentile用法说明
2020/06/08 Python
Python爬虫教程之利用正则表达式匹配网页内容
2020/12/08 Python
牦牛毛户外探险服装:Kora
2019/02/08 全球购物
德国2018年度最佳在线药房:Bodfeld Apotheke
2019/11/04 全球购物
英文简历中的自我评价
2013/10/06 职场文书
电气专业应届生求职信
2013/11/01 职场文书
大学生自我鉴定范文
2013/12/28 职场文书
初中英语教学反思
2014/01/25 职场文书
建筑总经理岗位职责
2014/02/02 职场文书
十八届三中全会感言
2014/03/10 职场文书
幼儿园春季开学通知
2015/07/16 职场文书
导游词之重庆渣滓洞
2020/01/08 职场文书
OpenCV-Python实现人脸磨皮算法
2021/06/07 Python