r2856 - positionTo: added support for offset option.

r2856 - positionTo: added support for offset option.


Author: scott.gonzalez
Date: Tue Jun 30 18:55:35 2009
New Revision: 2856
Modified:
branches/dev/positionTo/ui/ui.positionTo.js
Log:
positionTo: added support for offset option.
Modified: branches/dev/positionTo/ui/ui.positionTo.js
==============================================================================
--- branches/dev/positionTo/ui/ui.positionTo.js    (original)
+++ branches/dev/positionTo/ui/ui.positionTo.js    Tue Jun 30 18:55:35 2009
@@ -24,8 +24,8 @@
        targetWidth = target.outerWidth(),
        targetHeight = target.outerHeight(),
-//        offset = options.offset.replace(/px/gi, '').split(' '),
-        position = target.offset();
+        offset = options.offset ? options.offset.split(' ') : [0, 0],
+        basePosition = target.offset();
    $.each(['my', 'at'], function() {
        var pos = options[this].split(' ');
@@ -42,50 +42,48 @@
    });
    switch (options.at[0]) {
-        case 'left':
-            break;
        case 'right':
-            position.left += targetWidth;
+            basePosition.left += targetWidth;
            break;
-        default:
-            position.left += targetWidth / 2;
+        case horizontalDefault:
+            basePosition.left += targetWidth / 2;
            break;
    }
    switch (options.at[1]) {
-        case 'top':
-            break;
        case 'bottom':
-            position.top += targetHeight;
+            basePosition.top += targetHeight;
            break;
-        default:
-            position.top += targetHeight / 2;
+        case verticalDefault:
+            basePosition.top += targetHeight / 2;
            break;
    }
+    if (options.offset) {
+        basePosition.left += parseInt(offset[0], 10) || 0;
+        basePosition.top += parseInt(offset[1] === undefined ? offset[0] :
offset[1], 10) || 0;
+    }
+
    return this.each(function() {
        var elem = $(this),
            elemWidth = elem.outerWidth(),
-            elemHeight = elem.outerHeight();
+            elemHeight = elem.outerHeight(),
+            position = $.extend({}, basePosition);
        switch (options.my[0]) {
-            case 'left':
-                break;
            case 'right':
                position.left -= elemWidth;
                break;
-            default:
+            case horizontalDefault:
                position.left -= elemWidth / 2;
                break;
        }
        switch (options.my[1]) {
-            case 'top':
-                break;
            case 'bottom':
                position.top -= elemHeight;
                break;
-            default:
+            case verticalDefault:
                position.top -= elemHeight / 2;
                break;
        }