Permalink
Browse files

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
  • Loading branch information...
kswedberg authored and jeresig committed Sep 8, 2010
1 parent 0688344 commit 1f667aa035b3e4885d6b35fa9aa4990310f131af
Showing with 25 additions and 11 deletions.
  1. +10 −10 src/effects.js
  2. +2 −0 test/index.html
  3. +13 −1 test/unit/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 );
};
});

@@ -245,6 +245,8 @@ <h2 id="qunit-userAgent"></h2>

<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>

This comment has been minimized.

@jeresig

jeresig Sep 22, 2010

Member

Good catch - fixed! a32f4d7

</div>

<div id="fx-tests"></div>
@@ -562,20 +562,28 @@ 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);
});
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++)

0 comments on commit 1f667aa

Please sign in to comment.