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 ajax请求struts action实现异步刷新
Apr 19 jQuery
jQuery树插件zTree使用方法详解
May 02 jQuery
jQuery Pagination分页插件_动力节点Java学院整理
Jul 17 jQuery
使用jQuery 操作table 完成单元格合并的实例
Dec 27 jQuery
jquery.picsign图片标注组件实例详解
Feb 02 jQuery
jQuery实现图片上传预览效果功能完整实例【测试可用】
May 28 jQuery
深入浅析angular和vue还有jquery的区别
Aug 13 jQuery
Jquery和CSS实现选择框重置按钮功能
Nov 08 jQuery
IE8中jQuery.load()加载页面不显示的原因
Nov 15 jQuery
jQuery判断自定义属性data-val用法示例
Jan 07 jQuery
Jquery Datatables的使用详解
Jan 30 jQuery
jQuery实现简单轮播图效果
Dec 27 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
php 设计模式之 单例模式
2008/12/19 PHP
用php实现的获取网页中的图片并保存到本地的代码
2010/01/05 PHP
php+curl 发送图片处理代码分享
2015/07/09 PHP
php中namespace use用法实例分析
2016/01/22 PHP
解决AJAX中跨域访问出现'没有权限'的错误
2008/08/20 Javascript
javascript与asp.net(c#)互相调用方法
2009/12/13 Javascript
jquery 问答知识整理
2010/02/11 Javascript
JS打印gridview实现原理及代码
2013/02/05 Javascript
原生JavaScript生成GUID的实现示例
2014/09/05 Javascript
Javascript变量的作用域和作用域链详解
2015/04/02 Javascript
jQuery validate插件submitHandler提交导致死循环解决方法
2016/01/21 Javascript
详解javascript new的运行机制
2016/01/26 Javascript
JS中substring与substr的用法
2016/11/16 Javascript
利用javascript实现的三种图片放大镜效果实例(附源码)
2017/01/23 Javascript
vue.js 添加 fastclick的支持方法
2018/08/28 Javascript
三步实现ionic3点击退出app程序
2019/09/17 Javascript
Python用for循环实现九九乘法表
2018/05/31 Python
python让列表倒序输出的实例
2018/06/25 Python
深入学习python多线程与GIL
2019/08/26 Python
Python爬取知乎图片代码实现解析
2019/09/17 Python
Python3 无重复字符的最长子串的实现
2019/10/08 Python
python实现字符串和数字拼接
2020/03/02 Python
Pycharm激活方法及详细教程(详细且实用)
2020/05/12 Python
django 数据库 get_or_create函数返回值是tuple的问题
2020/05/15 Python
加拿大休闲和工业服装和鞋类零售商:L’Équipeur
2018/01/12 全球购物
Mio Skincare英国官网:身体紧致及孕期身体护理
2018/08/19 全球购物
澳大利亚最受欢迎的美发用品目的地:AMR
2019/08/28 全球购物
中东奢侈品购物网站:Ounass
2020/09/02 全球购物
乡村卫生服务一体化管理实施方案
2014/03/30 职场文书
乐观自信演讲稿范文
2014/05/21 职场文书
贪污受贿检讨书范文
2014/11/19 职场文书
2015元旦主持词开场白和结束语
2014/12/14 职场文书
清洁工岗位职责
2015/02/13 职场文书
企业法人代表证明书
2015/06/18 职场文书
公司借款担保书
2015/09/22 职场文书
浅谈Golang 切片(slice)扩容机制的原理
2021/06/09 Golang