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切换插件可以应用到网站建设中,减少代码开发工作。

原文地址:https://www.cnblogs.com/mengfangui/p/6904189.html