From f5ff66eb63da48e0f6018fdb1141ecb05079476e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Laxstr=C3=B6m?= Date: Wed, 17 Aug 2016 16:07:02 +0200 Subject: [PATCH] Increase breakpoints for different number of columns https://phabricator.wikimedia.org/T138235#2560677 Also, update the default position to be centered on the page. The original 25% was pretty close to this for the wide option, but now that shorter lists are more common, it is no longer sufficient and replaced with a better code. --- src/jquery.uls.core.js | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) 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'; }