Commit 1f667aa0 authored by Karl Swedberg's avatar Karl Swedberg Committed by jeresig

Added full support for easing in all shorthand effects methods (hide, show,...

Added full support for easing in all shorthand effects methods (hide, show, toggle, fadeTo, slideUp, etc.). Previously, these methods could only be used with two of the three (speed, easing, callback) arguments, or, in the case of fadeTo, 3 of the 4 (speed, opacity, easing, callback) arguments. Added three more sets of tests to the series of "Chain" tests. Fixes #7014
parent 06883449
......@@ -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 );
};
});
......
......@@ -245,6 +245,8 @@ Z</textarea>
<div id="slidetogglein" class='chain test'>slideToggleIn<div>slideToggleIn</div></div>
<div id="slidetoggleout" class='chain test out'>slideToggleOut<div>slideToggleOut</div></div>
<div id="fadeto" class='chain test'>fadeTo<div>fadeTo</div></div>
</div>
<div id="fx-tests"></div>
......
......@@ -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("<div></div>")
.attr("id", "test" + jQuery.makeTest.id++)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment