110 lines
4.0 KiB
JavaScript
110 lines
4.0 KiB
JavaScript
/*
|
|
* strength.js
|
|
*/
|
|
;(function ( $, window, document, undefined ) {
|
|
|
|
var pluginName = "tabulous",
|
|
defaults = {
|
|
effect: 'scale'
|
|
};
|
|
|
|
// $('<style>body { background-color: red; color: white; }</style>').appendTo('head');
|
|
|
|
function Plugin( element, options ) {
|
|
this.element = element;
|
|
this.$elem = $(this.element);
|
|
this.options = $.extend( {}, defaults, options );
|
|
this._defaults = defaults;
|
|
this._name = pluginName;
|
|
this.init();
|
|
}
|
|
|
|
Plugin.prototype = {
|
|
|
|
init: function() {
|
|
|
|
var links = this.$elem.find('ul a');
|
|
var firstchild = this.$elem.find('li:first-child').find('a');
|
|
var lastchild = this.$elem.find('li:last-child').after('<span class="tabulousclear"></span>');
|
|
|
|
if (this.options.effect == 'scale') {
|
|
tab_content = this.$elem.find('.tabs-content').not(':first').not(':nth-child(1)').addClass('hidescale');
|
|
} else if (this.options.effect == 'slideLeft') {
|
|
tab_content = this.$elem.find('.tabs-content').not(':first').not(':nth-child(1)').addClass('hideleft');
|
|
} else if (this.options.effect == 'scaleUp') {
|
|
tab_content = this.$elem.find('.tabs-content').not(':first').not(':nth-child(1)').addClass('hidescaleup');
|
|
} else if (this.options.effect == 'flip') {
|
|
tab_content = this.$elem.find('.tabs-content').not(':first').not(':nth-child(1)').addClass('hideflip');
|
|
}
|
|
|
|
var firstdiv = this.$elem.find('#tabs_container');
|
|
var firstdivheight = firstdiv.find('div:first').height();
|
|
|
|
var alldivs = this.$elem.find('div:first').find('.tabs-content');
|
|
|
|
alldivs.css({'position': 'absolute','top':'0px'});
|
|
|
|
firstdiv.css('height',firstdivheight+'px');
|
|
|
|
firstchild.addClass('tabulous_active');
|
|
|
|
links.bind('click', {myOptions: this.options}, function(e) {
|
|
e.preventDefault();
|
|
|
|
var $options = e.data.myOptions;
|
|
var effect = $options.effect;
|
|
|
|
var mythis = $(this);
|
|
var thisform = mythis.parent().parent().parent();
|
|
var thislink = mythis.attr('href');
|
|
|
|
|
|
firstdiv.addClass('transition');
|
|
|
|
links.removeClass('tabulous_active');
|
|
mythis.addClass('tabulous_active');
|
|
thisdivwidth = thisform.find('div'+thislink).height();
|
|
|
|
if (effect == 'scale') {
|
|
alldivs.removeClass('showscale').addClass('make_transist').addClass('hidescale');
|
|
thisform.find('.tabs-content'+thislink).addClass('make_transist').addClass('showscale');
|
|
} else if (effect == 'slideLeft') {
|
|
alldivs.removeClass('showleft').addClass('make_transist').addClass('hideleft');
|
|
thisform.find('.tabs-content'+thislink).addClass('make_transist').addClass('showleft');
|
|
} else if (effect == 'scaleUp') {
|
|
alldivs.removeClass('showscaleup').addClass('make_transist').addClass('hidescaleup');
|
|
thisform.find('.tabs-content'+thislink).addClass('make_transist').addClass('showscaleup');
|
|
} else if (effect == 'flip') {
|
|
alldivs.removeClass('showflip').addClass('make_transist').addClass('hideflip');
|
|
thisform.find('.tabs-content'+thislink).addClass('make_transist').addClass('showflip');
|
|
}
|
|
|
|
|
|
firstdiv.css('height',thisdivwidth+'px');
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
yourOtherFunction: function(el, options) {
|
|
// some logic
|
|
}
|
|
};
|
|
|
|
// A really lightweight plugin wrapper around the constructor,
|
|
// preventing against multiple instantiations
|
|
$.fn[pluginName] = function ( options ) {
|
|
return this.each(function () {
|
|
new Plugin( this, options );
|
|
});
|
|
};
|
|
|
|
})( jQuery, window, document ); |