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