aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarl Swedberg <kswedberg@gmail.com>2010-09-08 16:31:32 -0400
committerjeresig <jeresig@gmail.com>2010-09-22 11:30:54 -0400
commit1f667aa035b3e4885d6b35fa9aa4990310f131af (patch)
treec9b44600ba404c0759010f7e63ee21b3e5d48881
parent06883449d6ac16c2f9ed631da15d88929dd7f817 (diff)
downloadjquery-1f667aa035b3e4885d6b35fa9aa4990310f131af.tar.gz
jquery-1f667aa035b3e4885d6b35fa9aa4990310f131af.zip
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
-rw-r--r--src/effects.js20
-rw-r--r--test/index.html2
-rw-r--r--test/unit/effects.js14
3 files changed, 25 insertions, 11 deletions
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</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>
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("<div></div>")
.attr("id", "test" + jQuery.makeTest.id++)