diff options
author | Corey Frang <gnarf@gnarf.net> | 2011-10-13 16:06:19 -0500 |
---|---|---|
committer | Corey Frang <gnarf@gnarf.net> | 2011-10-14 10:24:01 -0500 |
commit | d4d8d74b10431933aadca19248c15e36fbb35a03 (patch) | |
tree | 50d4a166fcd46abf1cd052f76080e71cccb9f9bc | |
parent | 42d33f2f86d48f5f82a640a6c57c566a4e84cdda (diff) | |
download | jquery-ui-d4d8d74b10431933aadca19248c15e36fbb35a03.tar.gz jquery-ui-d4d8d74b10431933aadca19248c15e36fbb35a03.zip |
Scale: We can't detect this reliably currently, so assume all elements are positioned with left and top
-rw-r--r-- | tests/unit/effects/effects_scale.js | 2 | ||||
-rw-r--r-- | ui/jquery.effects.scale.js | 21 |
2 files changed, 5 insertions, 18 deletions
diff --git a/tests/unit/effects/effects_scale.js b/tests/unit/effects/effects_scale.js index 1436cd030..a607361e6 100644 --- a/tests/unit/effects/effects_scale.js +++ b/tests/unit/effects/effects_scale.js @@ -44,9 +44,11 @@ function suite( position ) { 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() { diff --git a/ui/jquery.effects.scale.js b/ui/jquery.effects.scale.js index 000fdee28..96a9269ec 100644 --- a/ui/jquery.effects.scale.js +++ b/ui/jquery.effects.scale.js @@ -117,9 +117,7 @@ $.effects.effect.size = function( o, done ) { 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(); @@ -260,32 +258,19 @@ $.effects.effect.size = function( o, done ) { 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"; }); }); |