r2879 - positionTo: experimental "flip" collision detection
Author: joern.zaefferer
Date: Mon Jul 6 05:09:18 2009
New Revision: 2879
Modified:
branches/dev/positionTo/ui/ui.positionTo.js
Log:
positionTo: experimental "flip" collision detection
Modified: branches/dev/positionTo/ui/ui.positionTo.js
==============================================================================
--- branches/dev/positionTo/ui/ui.positionTo.js (original)
+++ branches/dev/positionTo/ui/ui.positionTo.js Mon Jul 6 05:09:18 2009
@@ -92,7 +92,9 @@
elemWidth = elem.outerWidth(),
elemHeight = elem.outerHeight(),
position = $.extend({}, basePosition),
- over;
+ over,
+ myOffset,
+ atOffset;
switch (options.my[0]) {
case 'right':
@@ -119,7 +121,8 @@
position.left = over > 0 ? position.left - over : Math.max(0,
position.left);
break;
case 'flip':
- // TODO not yet implemented
+ myOffset = options.my[0] == 'left' ? -elemWidth : elemWidth;
+ position.left += position.left < 0 ? myOffset + targetWidth : over >
0 ? myOffset - targetWidth : 0;
break;
}
}
@@ -130,7 +133,9 @@
position.top = over > 0 ? position.top - over : Math.max(0,
position.top);
break;
case 'flip':
- // TODO not yet implemented
+ myOffset = options.my[1] == 'top' ? -elemHeight : elemHeight;
+ atOffset = options.at[1] == 'top' ? targetHeight : -targetHeight;
+ position.top += position.top < 0 ? myOffset + targetHeight : over >
0 ? myOffset + atOffset : 0;
break;
}
}