123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- /*
- * 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 );
|