Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Position: Fixed issue with offsets using the within option which caus…

…ed flips to not happen when the containing element had been scrolled.
  • Loading branch information...
commit e7701e2efac7e718f0aea5e57f4c260c8b08017c 1 parent a505192
@kborchers authored
Showing with 8 additions and 6 deletions.
  1. +8 −6 ui/jquery.ui.position.js
View
14 ui/jquery.ui.position.js
@@ -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" );
Please sign in to comment.
Something went wrong with that request. Please try again.