From df246df2da4ff76b37959878c006464c6b438906 Mon Sep 17 00:00:00 2001
From: John Resig <jeresig@gmail.com>
Date: Sat, 15 Sep 2007 02:40:42 +0000
Subject: [PATCH] Convert relative animations to use -= and += (instead of
 just - and +, which conflicted with normal absolute
 animations). (Fixes bug #1607) Also fixed a bug in queue.

---
 src/fx.js |   11 ++++-------
 1 file changed, 4 insertions(+), 7 deletions(-)

diff --git a/src/fx.js b/src/fx.js
index 67af130..d5122f1 100644
--- 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(){
-- 
1.7.10.4