Convert relative animations to use -= and += (instead of just - and +, which conflict...
authorJohn Resig <jeresig@gmail.com>
Sat, 15 Sep 2007 02:40:42 +0000 (02:40 +0000)
committerJohn Resig <jeresig@gmail.com>
Sat, 15 Sep 2007 02:40:42 +0000 (02:40 +0000)
src/fx.js

index 67af130..d5122f1 100644 (file)
--- a/src/fx.js
+++ b/src/fx.js
@@ -96,7 +96,7 @@ jQuery.fn.extend({
                                if ( /toggle|show|hide/.test(val) )
                                        e[ val == "toggle" ? hidden ? "show" : "hide" : val ]( prop );
                                else {
-                                       var parts = val.toString().match(/^([+-]?)([\d.]+)(.*)$/),
+                                       var parts = val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),
                                                start = e.cur(true) || 0;
 
                                        if ( parts ) {
@@ -110,12 +110,9 @@ jQuery.fn.extend({
                                                        self.style[ name ] = start + unit;
                                                }
 
-                                               // If a +/- token was provided, we're doing a relative animation
+                                               // If a +=/-= token was provided, we're doing a relative animation
                                                if ( parts[1] )
-                                                       end = ((parts[1] == "-" ? -1 : 1) * end) + start;
-
-            // Absolutely position numbers
-            if( typeof val == "number") end = val;
+                                                       end = ((parts[1] == "-=" ? -1 : 1) * end) + start;
 
                                                e.custom( start, end, unit );
                                        } else
@@ -134,7 +131,7 @@ jQuery.fn.extend({
                        type = "fx";
                }
 
-               if ( !type || typeof type == "string" )
+               if ( !type || (typeof type == "string" && !fn) )
                        return queue( this[0], type );
 
                return this.each(function(){