X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Ffx%2Ffx.js;h=72bfbf83ab86d2898fba542b49f2146e4698873b;hb=94fc6aac1990dc3233c70f471432c5b9f230e756;hp=de65cfa29b1c8b0b0fa3f4469efe04d2ad3b8230;hpb=ec38c6086c3d0efd65e9c6060cb641e80ae3b2a9;p=jquery.git diff --git a/src/fx/fx.js b/src/fx/fx.js index de65cfa..72bfbf8 100644 --- a/src/fx/fx.js +++ b/src/fx/fx.js @@ -141,6 +141,13 @@ jQuery.fn.extend({ slideUp: function(speed,callback){ return this.animate({height: "hide"}, speed, callback); }, + + slideToggle: function(speed,callback){ + return this.each(function(){ + var state = $(this).is(":hidden") ? "show" : "hide"; + $(this).animate({height: state}, speed, callback); + }); + }, /** * Fade in all matched elements by adjusting their opacity. @@ -373,7 +380,8 @@ jQuery.extend({ // The users options z.o = { duration: options.duration || 400, - complete: options.complete + complete: options.complete, + step: options.step }; // The element @@ -384,6 +392,9 @@ jQuery.extend({ // Simple function for setting a style value z.a = function(){ + if ( options.step ) + options.step.apply( elem, [ z.now ] ); + if ( prop == "opacity" ) { if (z.now == 1) z.now = 0.9999; if (window.ActiveXObject) @@ -404,7 +415,8 @@ jQuery.extend({ // Get the current size z.cur = function(){ - return parseFloat( jQuery.curCSS(z.el, prop) ) || z.max(); + var r = parseFloat( jQuery.curCSS(z.el, prop) ); + return r && r > -10000 ? r : z.max(); }; // Start an animation from one number to another @@ -481,7 +493,8 @@ jQuery.extend({ z.el.orig[prop] + "px" : z.el.orig[prop]; // set its height and/or width to auto - jQuery.setAuto( z.el, prop ); + if ( prop == 'height' || prop == 'width' ) + jQuery.setAuto( z.el, prop ); // If a callback was provided, execute it if( z.o.complete && z.o.complete.constructor == Function )