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中hover方法搭配css的hover选择器,实现选中元素突出显示方法
May 08 jQuery
JQuery form表单提交前验证单选框是否选中、删除记录时验证经验总结(整理)
Jun 09 jQuery
jQuery实现的简单前端搜索功能示例
Oct 28 jQuery
基于jQuery解决ios10以上版本缩放问题
Nov 03 jQuery
jQuery简单实现的HTML页面文本框模糊匹配查询功能完整示例
May 09 jQuery
jQuery实现轮播图及其原理详解
Apr 12 jQuery
原生JS forEach()和map()遍历的区别、兼容写法及jQuery $.each、$.map遍历操作
Feb 27 jQuery
javascript异步处理与Jquery deferred对象用法总结
Jun 04 jQuery
jQuery 筛选器简单操作示例
Oct 02 jQuery
Jquery异步上传文件代码实例
Nov 13 jQuery
jQuery实现带进度条的轮播图
Sep 13 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
神族 PROTOSS 概述
2020/03/14 星际争霸
怎么样可以把 phpinfo()屏蔽掉?
2006/11/24 PHP
PHP编程中尝试程序并发的几种方式总结
2016/03/21 PHP
Thinkphp 3.2框架使用Redis的方法详解
2019/10/24 PHP
JavaScript 编程引入命名空间的方法
2007/06/29 Javascript
滚动图片效果 jquery实现回旋滚动效果
2013/01/08 Javascript
关于eval 与new Function 到底该选哪个?
2013/04/17 Javascript
关于js遍历表格的实例
2013/07/10 Javascript
JQEasy-ui在IE9以下版本中二次加载的问题分析及处理方法
2014/06/23 Javascript
js鼠标滑过图片震动特效的方法
2015/02/17 Javascript
Bootstrap布局之栅格系统详解
2016/06/13 Javascript
浅谈JS对html标签的属性的干预以及对CSS样式表属性的干预
2017/06/25 Javascript
详解vuex中mapState,mapGetters,mapMutations,mapActions的作用
2018/04/13 Javascript
手把手15分钟搭一个企业级脚手架
2019/09/16 Javascript
JavaScript 自定义html元素鼠标右键菜单功能
2019/12/02 Javascript
JavaScript, select标签元素左右移动功能实现
2020/05/14 Javascript
Python爬虫框架Scrapy实战之批量抓取招聘信息
2015/08/07 Python
深入理解python中的闭包和装饰器
2016/06/12 Python
利用Python开发微信支付的注意事项
2016/08/19 Python
Python通过matplotlib画双层饼图及环形图简单示例
2017/12/15 Python
Python入门学习指南分享
2018/04/11 Python
python复制文件到指定目录的实例
2018/04/27 Python
pandas每次多Sheet写入文件的方法
2018/12/10 Python
python实现数据分析与建模
2019/07/11 Python
详解python中的生成器、迭代器、闭包、装饰器
2019/08/22 Python
python dumps和loads区别详解
2020/02/04 Python
简单了解django文件下载方式
2020/02/10 Python
python实现IOU计算案例
2020/04/12 Python
当文件系统受到破坏时,如何检查和修复系统?
2012/03/09 面试题
幼儿园门卫制度
2014/01/29 职场文书
销售助理岗位职责
2014/02/21 职场文书
法人代表授权委托书
2014/04/08 职场文书
2014年有孩子的离婚协议书范本
2014/10/08 职场文书
债务纠纷委托书范本
2014/10/14 职场文书
2014年学校安全工作总结
2014/11/13 职场文书
Python OpenCV超详细讲解调整大小与图像操作的实现
2022/04/02 Python