diff --git a/src/effects.js b/src/effects.js index 87d0f4db7..96441948b 100644 --- a/src/effects.js +++ b/src/effects.js @@ -14,9 +14,9 @@ var elemdisplay = {}, ]; jQuery.fn.extend({ - show: function( speed, callback ) { + show: function( speed, easing, callback ) { if ( speed || speed === 0) { - return this.animate( genFx("show", 3), speed, callback); + return this.animate( genFx("show", 3), speed, easing, callback); } else { for ( var i = 0, l = this.length; i < l; i++ ) { @@ -58,9 +58,9 @@ jQuery.fn.extend({ } }, - hide: function( speed, callback ) { + hide: function( speed, easing, callback ) { if ( speed || speed === 0 ) { - return this.animate( genFx("hide", 3), speed, callback); + return this.animate( genFx("hide", 3), speed, easing, callback); } else { for ( var i = 0, l = this.length; i < l; i++ ) { @@ -83,7 +83,7 @@ jQuery.fn.extend({ // Save the old toggle function _toggle: jQuery.fn.toggle, - toggle: function( fn, fn2 ) { + toggle: function( fn, fn2, callback ) { var bool = typeof fn === "boolean"; if ( jQuery.isFunction(fn) && jQuery.isFunction(fn2) ) { @@ -96,15 +96,15 @@ jQuery.fn.extend({ }); } else { - this.animate(genFx("toggle", 3), fn, fn2); + this.animate(genFx("toggle", 3), fn, fn2, callback); } return this; }, - fadeTo: function( speed, to, callback ) { + fadeTo: function( speed, to, easing, callback ) { return this.filter(":hidden").css("opacity", 0).show().end() - .animate({opacity: to}, speed, callback); + .animate({opacity: to}, speed, easing, callback); }, animate: function( prop, speed, easing, callback ) { @@ -241,8 +241,8 @@ jQuery.each({ fadeIn: { opacity: "show" }, fadeOut: { opacity: "hide" } }, function( name, props ) { - jQuery.fn[ name ] = function( speed, callback ) { - return this.animate( props, speed, callback ); + jQuery.fn[ name ] = function( speed, easing, callback ) { + return this.animate( props, speed, easing, callback ); }; }); diff --git a/test/index.html b/test/index.html index be1f3632a..78060d464 100644 --- a/test/index.html +++ b/test/index.html @@ -245,6 +245,8 @@ Z
slideToggleIn
slideToggleIn
slideToggleOut
slideToggleOut
+ +
fadeTo
fadeTo
diff --git a/test/unit/effects.js b/test/unit/effects.js index 5ac471157..f82c4b177 100644 --- a/test/unit/effects.js +++ b/test/unit/effects.js @@ -562,6 +562,9 @@ test("Chain hide show", function() { test("Chain show hide", function() { jQuery('#hide div').saveState().show('fast').hide('fast',jQuery.checkState); }); +test("Chain show hide with easing and callback", function() { + jQuery('#hide div').saveState().show('fast').hide('fast','linear',jQuery.checkState); +}); test("Chain toggle in", function() { jQuery('#togglein div').saveState().toggle('fast').toggle('fast',jQuery.checkState); @@ -569,13 +572,18 @@ test("Chain toggle in", function() { test("Chain toggle out", function() { jQuery('#toggleout div').saveState().toggle('fast').toggle('fast',jQuery.checkState); }); - +test("Chain toggle out with easing and callback", function() { + jQuery('#toggleout div').saveState().toggle('fast').toggle('fast','linear',jQuery.checkState); +}); test("Chain slideDown slideUp", function() { jQuery('#slidedown div').saveState().slideDown('fast').slideUp('fast',jQuery.checkState); }); test("Chain slideUp slideDown", function() { jQuery('#slideup div').saveState().slideUp('fast').slideDown('fast',jQuery.checkState); }); +test("Chain slideUp slideDown with easing and callback", function() { + jQuery('#slideup div').saveState().slideUp('fast').slideDown('fast','linear',jQuery.checkState); +}); test("Chain slideToggle in", function() { jQuery('#slidetogglein div').saveState().slideToggle('fast').slideToggle('fast',jQuery.checkState); @@ -584,6 +592,10 @@ test("Chain slideToggle out", function() { jQuery('#slidetoggleout div').saveState().slideToggle('fast').slideToggle('fast',jQuery.checkState); }); +test("Chain fadeTo 0.5 1.0 with easing and callback)", function() { + jQuery('#fadeto div').saveState().fadeTo('fast',0.5).fadeTo('fast',1.0,'linear',jQuery.checkState); +}); + jQuery.makeTest = function( text ){ var elem = jQuery("
") .attr("id", "test" + jQuery.makeTest.id++)