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插件开发发送短信倒计时功能代码
May 09 jQuery
jQuery Validate 校验多个相同name的方法
May 18 jQuery
解决jQuery ajax动态新增节点无法触发点击事件的问题
May 24 jQuery
jQuery获取table表中的td标签(实例讲解)
Jul 28 jQuery
jquery之基本选择器practice(实例讲解)
Sep 30 jQuery
jquery如何实现点击空白处隐藏元素
Dec 05 jQuery
jquery学习笔记之无new构建详解
Dec 07 jQuery
jquery 获取索引值在一定范围的列表方法
Jan 25 jQuery
vue+jquery+lodash实现滑动时顶部悬浮固定效果
Apr 28 jQuery
jQuery模拟html下拉多选框的原生实现方法示例
May 30 jQuery
jquery自定义组件实例详解
Dec 31 jQuery
jquery插件实现代码雨特效
Apr 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
在PHP中使用XML
2006/10/09 PHP
PHP实现图片旋转效果实例代码
2014/10/01 PHP
PHP中两个float(浮点数)比较实例分析
2015/09/27 PHP
Symfony2实现从数据库获取数据的方法小结
2016/03/18 PHP
Yii中CGridView禁止列排序的设置方法
2016/07/12 PHP
PHP接口并发测试的方法(推荐)
2016/12/15 PHP
PHP结合Vue实现滚动底部加载效果
2017/12/17 PHP
php用xpath解析html的代码实例讲解
2019/02/14 PHP
自己的js工具 Event封装
2009/08/21 Javascript
JS 树形递归实例代码
2010/05/18 Javascript
jQuery中empty()方法用法实例
2015/01/16 Javascript
jquery中ajax处理跨域的三大方式
2016/01/05 Javascript
浅谈Node.js:Buffer模块
2016/12/05 Javascript
nodejs个人博客开发第三步 载入页面
2017/04/12 NodeJs
详解Vue 方法与事件处理器
2017/06/20 Javascript
jQuery简单实现对数组去重及排序操作实例
2017/10/31 jQuery
vue中使用echarts制作圆环图的实例代码
2018/07/27 Javascript
Vue中 key keep-alive的实现原理
2018/09/18 Javascript
Node.js EventEmmitter事件监听器用法实例分析
2019/01/07 Javascript
简述pm2常用命令集合及配置文件说明
2019/05/30 Javascript
JavaScript canvas实现文字时钟
2021/01/10 Javascript
用Python编程实现语音控制电脑
2014/04/01 Python
spyder常用快捷键(分享)
2017/07/19 Python
Django的CVB实例详解
2020/02/10 Python
详解Python 最短匹配模式
2020/07/29 Python
python 爬取免费简历模板网站的示例
2020/09/27 Python
详解CSS3 弹性布局快速入门
2019/06/06 HTML / CSS
基于 HTML5 WebGL 实现的垃圾分类系统
2019/10/08 HTML / CSS
值传递还是引用传递
2015/02/08 面试题
建筑学推荐信
2013/11/03 职场文书
2015年小学语文工作总结
2015/05/25 职场文书
优秀大学生申请书
2019/06/24 职场文书
读《推着妈妈去旅行》有感1500字
2019/10/15 职场文书
一文搞懂MySQL索引页结构
2022/02/28 MySQL
Spring this调用当前类方法无法拦截的示例代码
2022/03/20 Java/Android
GoFrame框架数据校验之校验结果Error接口对象
2022/06/21 Golang