zoukankan      html  css  js  c++  java
  • tab切换插件开发

    我开发的tab切换插件,基于jquery库,实现tab标签页的切换。
    插件的名称为jquery.tabSwitch.js。

    插件使用实际项目页面:http://www.shmsa.gov.cn/html/index.html

    插件实现代码如下:

     1 ;
     2 (function ($) {
     3     $.fn.tabSwitch = function (options) {
     4         //默认值
     5         var defaultVal = {
     6             tabName: 'a',//tab 标签页
     7             tabActiveClass: 'on',//当前显示的tab标签的class
     8             tabContent: 'ul',//tab 标签页对应的内容
     9             tabType: 'mouseenter',  // click , mouseenter , mouseleave , mouseout , mouseover  触发tab事件切换的类型
    10             tabIs: true,  //页面加载后触发一次tab切换事件(第一个tab页显示内容)
    11             isInndex: false  //开始显示,移动到tab后需要隐藏的元素
    12         };
    13         var obj = $.extend(defaultVal, options);  // 合并参数
    14         
    15         return this.each(function () {
    16             var selObject = $(this);//获取当前对象
    17             var selTabName = selObject.find(obj.tabName);//获取当前对象下的tab标签
    18             var selTabContent = selObject.find(obj.tabContent);//获取当前对象下的tab标签内容
    19             
    20             //绑定事件
    21             selTabName.bind(obj.tabType, function () {
    22                 //所有的tab移除tabActiveClass
    23                 selTabName.removeClass(obj.tabActiveClass);
    24                 //当前的tab添加tabActiveClass
    25                 $(this).addClass(obj.tabActiveClass);
    26                 //所有的tab内容隐藏
    27                 selTabContent.hide();
    28                 //当前的tab对应的内容显示
    29                 selTabContent.eq(selTabName.index(this)).show();
    30                 
    31                 //若存在移动到tab后需要隐藏的元素
    32                 if (obj.isInndex) {
    33                     //隐藏需要不显示的元素
    34                     $(obj.isInndex).hide();
    35                 }
    36             });
    37             
    38             //页面加载后触发第一个tab显示内容
    39             if (obj.tabIs) {selTabName.eq(0).trigger(obj.tabType);}
    40             //若存在移动到tab后需要隐藏的元素
    41             if (obj.isInndex) {
    42                 //当前元素移开后,被隐藏的元素显示
    43                 selObject.mouseleave(function (i) {
    44                     //所有的tab标签移除tabActiveClass
    45                     selTabName.removeClass(obj.tabActiveClass);
    46                     //所有的tab标签页对应的内容隐藏
    47                     selTabContent.hide();
    48                     //被隐藏的元素显示
    49                     $(obj.isInndex).show();
    50                 });
    51             }
    52         });
    53     }
    54 })(jQuery); 

    插件使用:

    (1)实现tab标签页切换:

    实例代码(注:需要引入jquery)

     1 <!DOCTYPE html>
     2 <html lang="zh">
     3 <head>
     4     <meta charset="UTF-8" />
     5     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
     6     <meta http-equiv="X-UA-Compatible" content="ie=edge" />
     7     <title>tab切换插件--tabSwitch</title>
     8 </head>
     9 <body>
    10     <div class="parent">
    11         <div class="aa" style="cursor: pointer;">
    12             tab1
    13         </div>
    14         <div class="aa" style="cursor: pointer;">
    15             tab2
    16         </div>
    17         <ul class="bb">
    18             <li>tab1 内容</li>
    19             <li>tab1 内容</li>
    20             <li>tab1 内容</li>
    21         </ul>
    22         <ul class="bb">
    23             <li>tab2 内容</li>
    24             <li>tab2 内容</li>
    25             <li>tab3 内容</li>
    26         </ul>
    27     </div>
    28     <script src="js/jquery-1.12.4.min.js" type="text/javascript" charset="utf-8"></script>
    29     <script src="js/jquery.tabSwitch.js" type="text/javascript" charset="utf-8"></script>
    30     <script type="text/javascript">
    31         $('.parent').tabSwitch({tabName: '.aa',tabContent: 'ul'})
    32     </script>
    33 </body>
    34 </html>

    显示效果:

    (2)应用:移动到tab上显示tab的内容,移出tab后显示其他内容。

    少说,看代码,自己运行看效果。

     1 <!DOCTYPE html>
     2 <html lang="zh">
     3 <head>
     4     <meta charset="UTF-8" />
     5     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
     6     <meta http-equiv="X-UA-Compatible" content="ie=edge" />
     7     <title>tab切换插件--tabSwitch</title>
     8 </head>
     9 <body>
    10     <div class="parent">
    11         <span class="aa" style="cursor: pointer;display: inline-block; 200px;border: 1px solid red;margin-right: 20px;">
    12             tab1
    13         </span>
    14         <span class="aa" style="cursor: pointer;display: inline-block; 200px;border: 1px solid red;">
    15             tab2
    16         </span>
    17         <div class="cc">
    18             占据空间
    19         </div>
    20         <ul class="bb">
    21             <li>tab1 内容</li>
    22             <li>tab1 内容</li>
    23             <li>tab1 内容</li>
    24         </ul>
    25         <ul class="bb">
    26             <li>tab2 内容</li>
    27             <li>tab2 内容</li>
    28             <li>tab3 内容</li>
    29         </ul>
    30     </div>
    31     <script src="js/jquery-1.12.4.min.js" type="text/javascript" charset="utf-8"></script>
    32     <script src="js/jquery.tabSwitch.js" type="text/javascript" charset="utf-8"></script>
    33     <script type="text/javascript">
    34         $('.bb').hide();
    35         $('.parent').tabSwitch({tabName: '.aa',tabContent: 'ul',isInndex: '.cc',tabIs: false})
    36     </script>
    37 </body>
    38 </html>

    至此,tab切换插件已经写完,请运行查看效果,此tab切换插件可以应用到网站建设中,减少代码开发工作。

  • 相关阅读:
    eclipse luna maven失效的原因
    利用线性探测法解决hash冲突
    PHP和JavaScript将字符串转换为数字string2int
    JavaScript 编程易错点整理
    使用phpstudy创建本地虚拟主机
    单例模式
    PHP使用cookie时遇到的坑
    Redis安装与配置
    CI框架2.x的验证码中所遇问题解决
    用delete和trancate删除表记录的区别
  • 原文地址:https://www.cnblogs.com/mengfangui/p/6904189.html
Copyright © 2011-2022 走看看