diff --git a/src/jquery.uls.core.js b/src/jquery.uls.core.js index 30aa5e9..d53a416 100644 --- a/src/jquery.uls.core.js +++ b/src/jquery.uls.core.js @@ -134,15 +134,25 @@ * @returns {Object} */ position: function () { - var pos; + var pos, + top = this.top, + left = this.left; + + if ( top === undefined ) { + pos = $.extend( {}, this.$element.offset(), { + height: this.$element[ 0 ].offsetHeight + } ); + top = pos.top + pos.height; + } + + if ( left === undefined ) { + left = $( window ).width() / 2 - this.$menu.outerWidth() / 2; + } - pos = $.extend( {}, this.$element.offset(), { - height: this.$element[ 0 ].offsetHeight - } ); return { - top: this.top !== undefined ? this.top : pos.top + pos.height, - left: this.left !== undefined ? this.left : '25%' + top: top, + left: left }; }, @@ -157,7 +167,6 @@ }; this.$menu.addClass( widthClasses[this.getMenuWidth()] ); - this.$menu.css( this.position() ); if ( !this.initialized ) { $( 'body' ).prepend( this.$menu ); @@ -165,6 +174,7 @@ this.initialized = true; } + this.$menu.css( this.position() ); this.$menu.show(); this.$menu.scrollIntoView(); this.shown = true; @@ -348,11 +358,11 @@ languagesCount = objectLength( this.options.languages ); - if ( languagesCount < 12 ) { + if ( languagesCount < 25 ) { return 'narrow'; } - if ( languagesCount < 100 ) { + if ( languagesCount < 400 ) { return 'medium'; }