/* 滑动门插件switch tab - http://www.ks-pe.com/tech/switch-demo.html @dom
标题一 标题二
内容一
内容二
@usage $(".tab").switchtab(options); $(".tab").switchtab({ defaultindex: "0", effect: "fade", titcell: "dt a", trigger: "click", delaytime: 250 }); @options defaultindex :0, //默认选中的标签索引,从0开始 titonclassname :"on", //标签选中时的样式 titcell :"dt span", //自定义标题标签,支持选择符 maincell :"dd", //自定义标题标签,支持选择符 delaytime :250, //延迟触发时间. 当这个时间小于切换动画效果时间时, 动画将被禁用 intertime :0, //自动切换时间. 当这个时间大于0时, 标签将定时自动切换 trigger :"click", //滑动触发方式. 默认为click, 可选择mouseover effect :"fade", //切换动画. 默认不使用动画. 目前仅提供fade(淡出), slide(向下展开)两种 omitlinks :false, //是否忽略带链接标签,默认为否 debug :"" //调试模式. 默认关闭 */ jquery.fn.switchtab = function(settings) { settings = jquery.extend({//可配置参数 defaultindex: 0, titonclassname: "on", titcell: "dt span", maincell: ".tabdd", delaytime: 250, intertime: 0, trigger: "click", effect: "", omitlinks: false, debug: "", ismap: false }, settings, {//插件信息 version: 120 }); this.each(function() { var st; var curtagindex = -1; var obj = jquery(this); if(settings.omitlinks){ settings.titcell = settings.titcell + "[href^='#']"; } var otit = obj.find(settings.titcell); var omain = obj.find(settings.maincell); var cellcount = otit.length;//可切换个数 var showstcon = function (oi){ if(oi != curtagindex || settings.ismap){ otit.eq(curtagindex).removeclass(settings.titonclassname); omain.hide(); obj.find(settings.titcell + ":eq(" + oi + ")").addclass(settings.titonclassname); if(settings.delaytime <250 && settings.effect != "")settings.effect = ""; if(settings.effect == "fade"){ obj.find(settings.maincell + ":eq(" + oi + ")").fadein({queue: false, duration: 250}); }else if(settings.effect == "slide"){ obj.find(settings.maincell + ":eq(" + oi + ")").slidedown({queue: false, duration: 250}); }else{ obj.find(settings.maincell + ":eq(" + oi + ")").show(); } curtagindex = oi; } }; var shownext = function (){ otit.eq(curtagindex).removeclass(settings.titonclassname); omain.hide(); if(++curtagindex >= cellcount)curtagindex = 0; otit.eq(curtagindex).addclass(settings.titonclassname); omain.eq(curtagindex).show(); //showstcon(curtagindex); }; //根据defaultindex初始化 if(!settings.ismap) { showstcon(settings.defaultindex); } // if(settings.intertime > 0){ var sinterval = setinterval(function(){ shownext(); }, settings.intertime); } //处理交互事件 otit.each(function(i, ele){ if(settings.trigger=="click"){ jquery(ele).click(function(){ showstcon(i); return false;//若有链接而选择了click模式, 链接不起作用 }); }else if(settings.delaytime > 0){ jquery(ele).hover(function(){ st = settimeout(function(){//延时触发 showstcon(i); st = null; }, settings.delaytime); },function(){ if(st!=null)cleartimeout(st); }); }else{ jquery(ele).mouseover(function(){ showstcon(i); }); } }); }); if(settings.debug!="")alert(settings[settings.debug]); return this; };