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 相关文章推荐
详解如何在 vue 项目里正确地引用 jquery 和 jquery-ui的插件
Jun 01 jQuery
jQuery选择器中的特殊符号处理方法
Sep 08 jQuery
jQuery插件实现弹性运动完整示例
Jul 07 jQuery
jQuery 实现倒计时天,时,分,秒功能
Jul 31 jQuery
js jquery 获取某一元素到浏览器顶端的距离实现方法
Sep 05 jQuery
jquery获取元素到屏幕四周可视距离的方法
Sep 05 jQuery
JQuery获取元素尺寸、位置及页面滚动事件应用示例
May 14 jQuery
jquery 验证用户名是否重复代码实例
May 14 jQuery
jquery 键盘事件 keypress() keydown() keyup()用法总结
Oct 23 jQuery
Jquery+AJAX实现无刷新上传并重命名文件操作示例【PHP后台接收】
May 29 jQuery
jQuery 实现扁平式小清新导航
Jul 07 jQuery
jquery插件懒加载的示例
Oct 24 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
2014最热门的24个php类库汇总
2014/12/18 PHP
php使用变量动态创建类的对象用法示例
2017/02/06 PHP
PHP中quotemeta()函数的用法讲解
2019/04/04 PHP
使用laravel的migrate创建数据表的方法
2019/09/30 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
2019/12/01 PHP
IE6下js通过css隐藏select的一个bug
2010/08/16 Javascript
Js数组排序函数sort()介绍
2015/06/08 Javascript
通过Jquery.cookie.js实现展示浏览网页的历史记录超管用
2015/10/23 Javascript
jQuery操作动态生成的内容的方法
2016/05/28 Javascript
JavaScript中apply方法的应用技巧小结
2016/09/29 Javascript
Javascript 创建类并动态添加属性及方法的简单实现
2016/10/20 Javascript
JScript实现地址选择功能
2017/08/15 Javascript
打造通用的匀速运动框架(实例讲解)
2017/10/17 Javascript
关于React动态加载路由处理的相关问题
2019/01/07 Javascript
es6函数name属性功能与用法实例分析
2020/04/18 Javascript
解决python2.7 查询mysql时出现中文乱码
2016/10/09 Python
Python之Scrapy爬虫框架安装及简单使用详解
2017/12/22 Python
Python中循环引用(import)失败的解决方法
2018/04/22 Python
Python并发之多进程的方法实例代码
2018/08/15 Python
Python最小二乘法矩阵
2019/01/02 Python
python 对多个csv文件分别进行处理的方法
2019/01/07 Python
Python 支付整合开发包的实现
2019/01/23 Python
python 自定义装饰器实例详解
2019/07/20 Python
使用python切片实现二维数组复制示例
2019/11/26 Python
python turtle 绘制太极图的实例
2019/12/18 Python
python使用多线程+socket实现端口扫描
2020/05/28 Python
JupyterNotebook 输出窗口的显示效果调整实现
2020/09/22 Python
利用CSS3实现文字折纸效果实例代码
2018/07/10 HTML / CSS
超30万乐谱下载:Musicnotes.com
2016/09/24 全球购物
理肤泉英国官网:La Roche-Posay英国
2019/01/14 全球购物
英国第一的滑雪服装和装备零售商:Snow+Rock
2020/02/01 全球购物
《守株待兔》教学反思
2014/03/01 职场文书
2015年超市工作总结
2015/04/09 职场文书
亮剑精神观后感
2015/06/05 职场文书
当你找不到方向的时候,不妨读读刘备的一生
2019/08/05 职场文书
Nginx速查手册及常见问题
2022/04/07 Servers