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和Bootstrap
Apr 10 jQuery
全面解析jQuery中的$(window)与$(document)的用法区别
Aug 15 jQuery
jQuery实现广告条滚动效果
Aug 22 jQuery
JQuery用$.ajax或$.getJSON跨域获取JSON数据的实现代码
Sep 23 jQuery
前端html中jQuery实现对文本的搜索功能并把搜索相关内容显示出来
Nov 14 jQuery
jQuery实现的点击按钮改变样式功能示例
Jul 21 jQuery
jQuery+vue.js实现的多选下拉列表功能示例
Jan 15 jQuery
JavaScript自动生成 年月范围 选择功能完整示例【基于jQuery插件】
Sep 03 jQuery
layui+jquery支持IE8的表格分页方法
Sep 28 jQuery
jQuery实现穿梭框效果
Jan 19 jQuery
jquery插件实现代码雨特效
Apr 24 jQuery
html中两种获取标签内的值的方法
Jun 16 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采集类Snoopy抓取图片实例
2014/06/19 PHP
php视频拍照上传头像功能实现代码分享
2015/10/08 PHP
php更新cookie内容的详细方法
2019/09/30 PHP
用javascript获取地址栏参数
2006/12/22 Javascript
js 变量类型转换常用函数与代码[比较全]
2009/12/01 Javascript
动态加载iframe时get请求传递中文参数乱码解决方法
2014/05/07 Javascript
JS实现网站菜单拖拽移位效果的方法
2015/09/24 Javascript
图解JavaScript中的this关键字
2020/05/28 Javascript
js自定义回调函数
2015/12/13 Javascript
详解jQuery中ajax.load()方法
2017/01/25 Javascript
微信小程序登录态控制深入分析
2017/04/12 Javascript
原生javascript实现的全屏滚动功能示例
2017/09/19 Javascript
vue-cli结合Element-ui基于cropper.js封装vue实现图片裁剪组件功能
2018/03/01 Javascript
微信小程序入门之广告条实现方法示例
2018/12/05 Javascript
layui点击弹框页面 表单请求的方法
2019/09/21 Javascript
Vue 中使用lodash对事件进行防抖和节流操作
2020/07/26 Javascript
Python实现将xml导入至excel
2015/11/20 Python
ubuntu系统下 python链接mysql数据库的方法
2017/01/09 Python
TF-IDF与余弦相似性的应用(二) 找出相似文章
2017/12/21 Python
Python中实现变量赋值传递时的引用和拷贝方法
2018/04/29 Python
python的re模块使用方法详解
2019/07/26 Python
django 多对多表的创建和插入代码实现
2019/09/09 Python
Python Django中间件,中间件函数,全局异常处理操作示例
2019/11/08 Python
Python计算公交发车时间的完整代码
2020/02/12 Python
Python控制台实现交互式环境执行
2020/06/09 Python
澳大利亚最好的在线时尚精品店:Princess Polly
2018/01/03 全球购物
opencv实现图像几何变换
2021/03/24 Python
幼儿园六一儿童节活动方案
2014/08/26 职场文书
2015秋季幼儿园开学寄语
2015/03/25 职场文书
企业宣传语大全
2015/07/13 职场文书
消防宣传语大全
2015/07/13 职场文书
2015年民兵整组工作总结
2015/07/24 职场文书
python tkinter实现定时关机
2021/04/21 Python
pytorch加载预训练模型与自己模型不匹配的解决方案
2021/05/13 Python
Go语言实现Base64、Base58编码与解码
2021/07/26 Golang
LeetCode189轮转数组python示例
2022/08/05 Python