好比:以tab切换为例,一个页面中,不少地方有tab切换,javascript
先来个完成的图片:css
需求提炼:html
【大柴-tab-1.0功能实现】:java
代码以下:less
js文件 tab.1.0.js dom
;(function($){ $.fn.tab = function(options) { /*可配置项-参数/属性*/ var defaults = { mouseType:'click', tab_border:'1px solid #e8e8e8', tab_menu_bg:'#f1f1f1', tab_menu_color:'#8b8b8b' } var options = $.extend(defaults, options); /*执行方法*/ return this.each(function() { var _this = $(this); var get_li=$(this).find(".tab-menu ul li"); /*平均宽度*/ var li_len=$(this).find("li").length; var tab_width= _this.width(); get_li.width(tab_width/li_len); /*UI皮肤*/ _this.css("border",options.tab_border) get_li.css({background:options.tab_menu_bg,color:options.tab_menu_color}) /*切换*/ get_li.bind(options.mouseType,function(){ $(this).addClass("current").siblings().removeClass("current"); var index = get_li.index(this); _this.find(".tab-content div").eq(index).show().siblings().hide(); }); }); } })(jQuery);
页面 调用 jside
/*插件调用*/ $(function(){ /*初始化配置*/ $("#tab_01").tab({ mouseType:'mouseover', tab_border:'1px solid #a4cae9', tab_menu_bg:'#9fd1fc', tab_menu_color:'#126bb7' }); /*..... 为了代码简洁,其余2个tab初始化省去了 若有多个tab,可多个初始化,如: $("#tab_02").tab({.....}); .....*/ })
html dom 结构:this
<!--插件-tab-dom结构-开始--> <div class="tab" id="tab_01"> <div class="tab-menu"> <ul> <li class="current">机修</li> <li>保养</li> <li>美容</li> <li>轮胎</li> </ul> </div> <div class="tab-content"> <div class="current">机修内容</div> <div>保养内容保养</div> <div>美容内容美容</div> <div>轮胎内容轮胎</div> </div> </div> <!--插件-tab-dom结构-结束--> .... ....后面能够跟多个tab,只要id不同便可。 我最上面的完成的动图是初始化配置了3个tab, 而且分别定义了不一样颜色。
css文件 tab.1.0.cssspa
/*插件-tab1.0----BigChai*/ *{ margin: 0; padding: 0;} /*tab-容器*/ .tab{ margin-bottom: 15px; border: 1px solid #e8e8e8;} /*tab-菜单*/ .tab .tab-menu ul{ list-style-type: none; margin-bottom: 0 !important;} .tab .tab-menu ul li{ float:left; height: 32px; font-size: 14px; font-family: "microsoft yahei"; line-height: 32px; text-align: center; color:#8b8b8b; background: #f1f1f1; cursor: pointer;} .tab .tab-menu ul li.current{ color: #3d3d3d; background: #fff !important;} /*tab-内容*/ .tab .tab-content{ clear: both;} .tab .tab-content > div{ padding: 15px; display: none; font-size: 12px;} .tab .tab-content > div.current{ display: block;}
css文件建议用less来编写,特别是维护大的项目的可拓展性和维护性考虑上。插件