From 65af98cfed19811c132ee3ff640eae5eccb3378c Mon Sep 17 00:00:00 2001 From: Igor Vaynberg Date: Sat, 9 Feb 2013 00:08:38 -0800 Subject: [PATCH] improve dropdown open up/down mode. fixes #589 --- select2.js | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/select2.js b/select2.js index 055d3f9a..09d6da1d 100644 --- a/select2.js +++ b/select2.js @@ -935,21 +935,21 @@ the specific language governing permissions and limitations under the Apache Lic height = this.container.outerHeight(false), width = this.container.outerWidth(false), dropHeight = this.dropdown.outerHeight(false), - viewPortRight = $(window).scrollLeft() + document.documentElement.clientWidth, - viewportBottom = $(window).scrollTop() + document.documentElement.clientHeight, + viewPortRight = $(window).scrollLeft() + $(window).width(), + viewportBottom = $(window).scrollTop() + $(window).height(), dropTop = offset.top + height, dropLeft = offset.left, enoughRoomBelow = dropTop + dropHeight <= viewportBottom, enoughRoomAbove = (offset.top - dropHeight) >= this.body().scrollTop(), - dropWidth = this.dropdown.outerWidth(false), - enoughRoomOnRight = dropLeft + dropWidth <= viewPortRight, + dropWidth = this.dropdown.outerWidth(false), + enoughRoomOnRight = dropLeft + dropWidth <= viewPortRight, aboveNow = this.dropdown.hasClass("select2-drop-above"), bodyOffset, above, css; - // console.log("below/ droptop:", dropTop, "dropHeight", dropHeight, "sum", (dropTop+dropHeight)+" viewport bottom", viewportBottom, "enough?", enoughRoomBelow); - // console.log("above/ offset.top", offset.top, "dropHeight", dropHeight, "top", (offset.top-dropHeight), "scrollTop", this.body().scrollTop(), "enough?", enoughRoomAbove); + //console.log("below/ droptop:", dropTop, "dropHeight", dropHeight, "sum", (dropTop+dropHeight)+" viewport bottom", viewportBottom, "enough?", enoughRoomBelow); + //console.log("above/ offset.top", offset.top, "dropHeight", dropHeight, "top", (offset.top-dropHeight), "scrollTop", this.body().scrollTop(), "enough?", enoughRoomAbove); // fix positioning when body has an offset and is not position: static @@ -969,9 +969,9 @@ the specific language governing permissions and limitations under the Apache Lic if (!enoughRoomBelow && enoughRoomAbove) above = true; } - if (!enoughRoomOnRight) { - dropLeft = offset.left + width - dropWidth; - } + if (!enoughRoomOnRight) { + dropLeft = offset.left + width - dropWidth; + } if (above) { dropTop = offset.top - dropHeight;