]> source.dussan.org Git - jquery-ui.git/commitdiff
Position: Fixed issue with offsets using the within option which caused flips to... 626/head
authorkborchers <kris.borchers@gmail.com>
Wed, 4 Apr 2012 02:08:34 +0000 (21:08 -0500)
committerkborchers <kris.borchers@gmail.com>
Wed, 4 Apr 2012 02:08:34 +0000 (21:08 -0500)
ui/jquery.ui.position.js

index 7fe31626d5fadcd1175cd7239717542357d2a56a..538daed26578e398ccfa90496e1f081618b58c95 100644 (file)
@@ -317,9 +317,10 @@ $.ui.position = {
                                isWindow = $.isWindow( data.within[0] ),
                                withinOffset = ( isWindow ? 0 : within.offset().left ) + within.scrollLeft(),
                                outerWidth = isWindow ? within.width() : within.outerWidth(),
+                               offsetLeft = isWindow ? 0 : within.offset().left,
                                collisionPosLeft = position.left - data.collisionPosition.marginLeft,
-                               overLeft = collisionPosLeft - withinOffset,
-                               overRight = collisionPosLeft + data.collisionWidth - outerWidth - withinOffset,
+                               overLeft = collisionPosLeft - offsetLeft,
+                               overRight = collisionPosLeft + data.collisionWidth - outerWidth - offsetLeft,
                                left = data.my[ 0 ] === "left",
                                myOffset = data.my[ 0 ] === "left" ?
                                        -data.elemWidth :
@@ -343,7 +344,7 @@ $.ui.position = {
                                }
                        }
                        else if ( overRight > 0 ) {
-                               newOverLeft = position.left - data.collisionPosition.marginLeft + myOffset + atOffset + offset - withinOffset;
+                               newOverLeft = position.left - data.collisionPosition.marginLeft + myOffset + atOffset + offset - offsetLeft;
                                if ( newOverLeft > 0 || Math.abs( newOverLeft ) < overRight ) {
                                        data.elem
                                                .addClass( "ui-flipped-left" );
@@ -365,9 +366,10 @@ $.ui.position = {
                                isWindow = $.isWindow( data.within[0] ),
                                withinOffset = ( isWindow ? 0 : within.offset().top ) + within.scrollTop(),
                                outerHeight = isWindow ? within.height() : within.outerHeight(),
+                               offsetTop = isWindow ? 0 : within.offset().top,
                                collisionPosTop = position.top - data.collisionPosition.marginTop,
-                               overTop = collisionPosTop - withinOffset,
-                               overBottom = collisionPosTop + data.collisionHeight - outerHeight - withinOffset,
+                               overTop = collisionPosTop - offsetTop,
+                               overBottom = collisionPosTop + data.collisionHeight - outerHeight - offsetTop,
                                top = data.my[ 1 ] === "top",
                                myOffset = top ?
                                        -data.elemHeight :
@@ -390,7 +392,7 @@ $.ui.position = {
                                }
                        }
                        else if ( overBottom > 0 ) {
-                               newOverTop = position.top -  data.collisionPosition.marginTop + myOffset + atOffset + offset - withinOffset;
+                               newOverTop = position.top -  data.collisionPosition.marginTop + myOffset + atOffset + offset - offsetTop;
                                if ( ( position.top + myOffset + atOffset + offset) > overBottom && ( newOverTop > 0 || Math.abs( newOverTop ) < overBottom ) ) {
                                        data.elem
                                                .addClass( "ui-flipped-top" );