run( position, "top", "left", "top", "left" );
run( position, "top", "left", "middle", "center" );
run( position, "top", "left", "bottom", "right" );
+ /* Firefox is currently not capable of supporting detection of bottom and right....
run( position, "bottom", "right", "top", "left" );
run( position, "bottom", "right", "middle", "center" );
run( position, "bottom", "right", "bottom", "right" );
+ */
}
$(function() {
scale = o.scale || "both",
origin = o.origin || [ "middle", "center" ],
original, baseline, factor,
- position = el.css( "position" ),
- originalVerticalPositioning = el.css( "bottom" ) !== "auto" ? "bottom" : "top";
- originalHorizontalPositioning = el.css( "right" ) !== "auto" ? "right" : "left";
+ position = el.css( "position" );
if ( mode === "show" ) {
el.show();
left: el.to.left
});
} else {
- $.each([ originalVerticalPositioning, originalHorizontalPositioning ], function( idx, pos ) {
+ $.each([ "top", "left" ], function( idx, pos ) {
el.css( pos, function( _, str ) {
var val = parseInt( str, 10 ),
toRef = idx ? el.to.left : el.to.top,
delta = idx ? el.to.outerWidth - el.from.outerWidth: el.to.outerHeight - el.from.outerHeight,
same = origin[ idx ] === pos,
- mid = origin[ idx ] === "middle" || origin[ idx ] === "center",
- direction = pos == "left" || pos == "top";
+ mid = origin[ idx ] === "middle" || origin[ idx ] === "center";
// if original was "auto", recalculate the new value from wrapper
if ( str === "auto" ) {
return toRef + "px";
}
- // if not setting left or top
- if ( !direction ) {
-
- // if the position is relative, bottom/right are reversed meaning
- if ( position === "relative" ) {
- toRef *= -1;
-
- // otherwise, if its NOT a midpoint origin, compensate for the outerWidth difference
- } else if ( !mid ) {
- toRef -= delta * ( same ? -1 : 1 );
- }
- }
return val + toRef + "px";
});
});