jQuery插件实现非常实用的tab栏切换功能【案例】


Posted in jQuery onFebruary 18, 2019

本文实例讲述了jQuery插件实现tab栏切换功能。分享给大家供大家参考,具体如下:

效果:

jQuery插件实现非常实用的tab栏切换功能【案例】

核心代码:自己写了一个方法,需要用的时候直接调用就可以了.

方法如下:

(function ($) {
  //给$的fn添加方法
  $.fn.tabs=function ( options ) {
    /*   {
            tabHeads:'tab-menu>li',
            tabHeadsClass:'active',
            tabBodys:'tab-main>div',
            tabBodysClass:'selected'
          }
    */
    /**
     * @param options 对象
     * @param options.tabHeads:上面的li标签
     * @param options.tabHeadsClass:li标签需要添加的类名
     * @param options.tabBodys:下面四个内容盒子
     * @param options.tabBodysClass:下面四个内容盒子需要添加的类名
     */
      //将fn这个对象存起来,代码结束的时候让它返回
    var $bigDiv=this;
    //1.给页签们添加点击事件
    $(options.tabHeads).on('click',function ( ) {
      //2.给被点击的li标签添加类,给其它兄弟标签移除这个类
      $(this).addClass(options.tabHeadsClass).siblings().removeClass(options.tabHeadsClass);
      //3.获取当前点击的标签的索引
      var idx=$(this).index();
      //4.从下面div里面找到和idx相同的索引,给它添加类,其它兄弟页面移除这个类
      $(options.tabBodys).eq(idx).addClass(options.tabBodysClass).siblings().removeClass(options.tabBodysClass)
    })
    return $bigDiv;
  }
}(jQuery))

代码结构:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>3water.com jQuery tab切换</title>
  <style>
    *{
      margin: 0;
      padding: 0;
    }
    ul {
      list-style: none;
    }
    .tab {
      width: 400px;
      height: 50px;
      background: #ccc;
      margin: 100px auto ;
    }
    .tab-body {
      width: 400px;
      height: 398px;
      border: 1px solid #ccc;
    }
    .tab .item {
      display: none;
      padding-left: 30px;
    }
    .tab-head li {
      float: left;
      width: 100px;
      height: 50px;
      text-align: center;
      line-height: 50px;
      cursor: pointer;
    }
    /*让下方的内容显示*/
    .item.selected{
      display: block;
    }
    /*让上方li标签改变颜色*/
    .active{
      background-color: hotpink;
    }
  </style>
</head>
<body>
<div class="tab">
  <ul class="tab-head">
    <li class="active">页签1</li>
    <li >页签2</li>
    <li >页签3</li>
    <li >页签4</li>
  </ul>
  <div class="tab-body">
    <div class="item selected">
      <p>内容1</p>
      <p>内容1</p>
      <p>内容1</p>
      <p>内容1</p>
    </div>
    <div class="item">
      <p>内容2</p>
      <p>内容2</p>
      <p>内容2</p>
      <p>内容2</p>
    </div>
    <div class="item">
      <p>内容3</p>
      <p>内容3</p>
      <p>内容3</p>
      <p>内容3</p>
    </div>
    <div class="item">
      <p>内容4</p>
      <p>内容4</p>
      <p>内容4</p>
      <p>内容4</p>
    </div>
    </div>
  </div>
<!--jq代码实现过程-->
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<!--//引入自己写的方法-->
<script src="jQuery-tabs.js"></script>
<script>
  $ ( function () {
    //先自己写一个jQuery-tabs方法(相当于js插件)
    // 调用自己写的方法
    $('#wrapper').tabs(
      {
        tabHeads:'.tab-head>li',
        tabHeadsClass:'active',
        tabBodys:'.tab-body>div',
        tabBodysClass:'selected'
      }
    )
  } )
</script>
</body>
</html>

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试上述代码运行效果。

希望本文所述对大家jQuery程序设计有所帮助。

jQuery 相关文章推荐
jQuery用noConflict代替$的实现方法
Apr 12 jQuery
为JQuery EasyUI 表单组件增加焦点切换功能的方法
Apr 13 jQuery
关于jQuery中fade(),show()起始位置的一点小发现
Apr 25 jQuery
jQuery实现可兼容IE6的淡入淡出效果告警提示功能示例
Sep 20 jQuery
jQuery判断网页是否已经滚动到浏览器底部的实现方法
Oct 27 jQuery
基于jQuery实现Ajax验证用户名是否可用实例
Mar 25 jQuery
jQuery实现百度图片移入移出内容提示框上下左右移动的效果
Jun 05 jQuery
jQuery阻止事件冒泡实例分析
Jul 03 jQuery
jQuery实现菜单的显示和隐藏功能示例
Jul 24 jQuery
jQuery实现侧边栏隐藏与显示的方法详解
Dec 22 jQuery
javascript(基于jQuery)实现鼠标获取选中的文字示例【测试可用】
Oct 26 jQuery
jQuery实现B2B网站后台管理系统侧导航
Jul 08 jQuery
jQuery实现的五星点评功能【案例】
Feb 18 #jQuery
jQuery实现的隔行变色功能【案例】
Feb 18 #jQuery
jQuery实现ajax的嵌套请求案例分析
Feb 16 #jQuery
jQuery实现简单的Ajax调用功能示例
Feb 15 #jQuery
jQuery实现经典的网页3D轮播图封装功能【附源码下载】
Feb 15 #jQuery
详解JavaScript原生封装ajax请求和Jquery中的ajax请求
Feb 14 #jQuery
Jquery实现无缝向上循环滚动列表的特效
Feb 13 #jQuery
You might like
Terran历史背景
2020/03/14 星际争霸
php截取html字符串及自动补全html标签的方法
2015/01/15 PHP
PHP实现导出带样式的Excel
2016/08/28 PHP
简单解决微信文章图片防盗链问题
2016/12/17 PHP
Three.js源码阅读笔记(物体是如何组织的)
2012/12/27 Javascript
js判读浏览器是否支持html5的canvas的代码
2013/11/18 Javascript
jQuery层动画定位滑动效果的方法
2015/04/30 Javascript
javascript实现Table排序的方法
2015/05/15 Javascript
bootstrap和jQuery.Gantt的css冲突 如何解决
2016/05/29 Javascript
关于input全选反选恶心的异常情况
2016/07/24 Javascript
jQuery简单实现彩色云标签效果示例
2016/08/01 Javascript
js阻止冒泡和默认事件(默认行为)详解
2016/10/20 Javascript
JS限制条件补全问题实例分析
2016/12/16 Javascript
轻松实现jQuery添加删除按钮Click事件
2017/03/13 Javascript
JavaScript实现实时更新系统时间的实例代码
2017/04/04 Javascript
Vue项目分环境打包的实现步骤
2018/04/02 Javascript
微信小程序实现滑动切换自定义页码的方法分析
2018/12/29 Javascript
Vue路由对象属性 .meta $route.matched详解
2019/11/04 Javascript
Vue 封装防刷新考试倒计时组件的实现
2020/06/05 Javascript
python爬虫实现教程转换成 PDF 电子书
2017/02/19 Python
Python sqlite3事务处理方法实例分析
2017/06/19 Python
Django Rest framework解析器和渲染器详解
2019/07/25 Python
Python操作MongoDb数据库流程详解
2020/03/05 Python
Python json格式化打印实现过程解析
2020/07/21 Python
python实现简单贪吃蛇游戏
2020/09/29 Python
Django Auth用户认证组件实现代码
2020/10/13 Python
jupyter notebook更换皮肤主题的实现
2021/01/07 Python
html5 利用canvas实现超级玛丽简单动画
2013/09/06 HTML / CSS
高中毕业生自我鉴定范文
2013/09/26 职场文书
编辑硕士自荐信范文
2013/11/27 职场文书
建筑工程专业学生的自我评价
2013/12/25 职场文书
致跳高运动员广播稿
2014/01/13 职场文书
小学新教师培训方案
2014/02/03 职场文书
标准的毕业生自荐信
2014/04/20 职场文书
关于环保的活动方案
2014/08/25 职场文书
Apache POI操作批量导入MySQL数据库
2022/06/21 Servers