r2879 - positionTo: experimental "flip" collision detection

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;
            }
        }