You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
2.2 KiB
69 lines
2.2 KiB
;(function($){
|
|
$.fn.tabso=function( options ){
|
|
var opts=$.extend({},$.fn.tabso.defaults,options );
|
|
|
|
return this.each(function(i){
|
|
var _this=$(this);
|
|
var $menus=_this.children( opts.menuChildSel );
|
|
var $container=$( opts.cntSelect ).eq(i);
|
|
|
|
if( !$container) return;
|
|
|
|
if( opts.tabStyle=="move"||opts.tabStyle=="move-fade"||opts.tabStyle=="move-animate" ){
|
|
var step=0;
|
|
if( opts.direction=="left"){
|
|
step=$container.children().children( opts.cntChildSel ).outerWidth(true);
|
|
}else{
|
|
step=$container.children().children( opts.cntChildSel ).outerHeight(true);
|
|
}
|
|
}
|
|
|
|
if( opts.tabStyle=="move-animate" ){ var animateArgu=new Object(); }
|
|
|
|
$menus[ opts.tabEvent]( function(){
|
|
var index=$menus.index( $(this) );
|
|
$( this).addClass( opts.onStyle )
|
|
.siblings().removeClass( opts.onStyle );
|
|
switch( opts.tabStyle ){
|
|
case "fade":
|
|
if( !($container.children( opts.cntChildSel ).eq( index ).is(":animated")) ){
|
|
$container.children( opts.cntChildSel ).eq( index ).siblings().css( "display", "none")
|
|
.end().stop( true, true ).fadeIn( opts.aniSpeed );
|
|
}
|
|
break;
|
|
case "move":
|
|
$container.children( opts.cntChildSel ).css(opts.direction,-step*index+"px");
|
|
break;
|
|
case "move-fade":
|
|
if( $container.children( opts.cntChildSel ).css(opts.direction)==-step*index+"px" ) break;
|
|
$container.children( opts.cntChildSel ).stop(true).css("opacity",0).css(opts.direction,-step*index+"px").animate( {"opacity":1},opts.aniSpeed );
|
|
break;
|
|
case "move-animate":
|
|
animateArgu[opts.direction]=-step*index+"px";
|
|
$container.children( opts.cntChildSel ).stop(true).animate( animateArgu,opts.aniSpeed,opts.aniMethod );
|
|
break;
|
|
default:
|
|
$container.children( opts.cntChildSel ).eq( index ).css( "display", "block")
|
|
.siblings().css( "display","none" );
|
|
}
|
|
|
|
});
|
|
|
|
$menus.eq(0)[ opts.tabEvent ]();
|
|
|
|
});
|
|
};
|
|
|
|
$.fn.tabso.defaults={
|
|
cntSelect : ".content_wrap",
|
|
tabEvent : "mouseover",
|
|
tabStyle : "normal",
|
|
direction : "top",
|
|
aniMethod : "swing",
|
|
aniSpeed : "fast",
|
|
onStyle : "current",
|
|
menuChildSel : "*",
|
|
cntChildSel : "*"
|
|
};
|
|
|
|
})(jQuery);
|