mirror of
https://github.com/jquery/jquery.git
synced 2024-11-23 02:54:22 +00:00
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
This commit is contained in:
parent
06883449d6
commit
1f667aa035
20
src/effects.js
vendored
20
src/effects.js
vendored
@ -14,9 +14,9 @@ var elemdisplay = {},
|
|||||||
];
|
];
|
||||||
|
|
||||||
jQuery.fn.extend({
|
jQuery.fn.extend({
|
||||||
show: function( speed, callback ) {
|
show: function( speed, easing, callback ) {
|
||||||
if ( speed || speed === 0) {
|
if ( speed || speed === 0) {
|
||||||
return this.animate( genFx("show", 3), speed, callback);
|
return this.animate( genFx("show", 3), speed, easing, callback);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
for ( var i = 0, l = this.length; i < l; i++ ) {
|
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 ) {
|
if ( speed || speed === 0 ) {
|
||||||
return this.animate( genFx("hide", 3), speed, callback);
|
return this.animate( genFx("hide", 3), speed, easing, callback);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
for ( var i = 0, l = this.length; i < l; i++ ) {
|
for ( var i = 0, l = this.length; i < l; i++ ) {
|
||||||
@ -83,7 +83,7 @@ jQuery.fn.extend({
|
|||||||
// Save the old toggle function
|
// Save the old toggle function
|
||||||
_toggle: jQuery.fn.toggle,
|
_toggle: jQuery.fn.toggle,
|
||||||
|
|
||||||
toggle: function( fn, fn2 ) {
|
toggle: function( fn, fn2, callback ) {
|
||||||
var bool = typeof fn === "boolean";
|
var bool = typeof fn === "boolean";
|
||||||
|
|
||||||
if ( jQuery.isFunction(fn) && jQuery.isFunction(fn2) ) {
|
if ( jQuery.isFunction(fn) && jQuery.isFunction(fn2) ) {
|
||||||
@ -96,15 +96,15 @@ jQuery.fn.extend({
|
|||||||
});
|
});
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
this.animate(genFx("toggle", 3), fn, fn2);
|
this.animate(genFx("toggle", 3), fn, fn2, callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
},
|
},
|
||||||
|
|
||||||
fadeTo: function( speed, to, callback ) {
|
fadeTo: function( speed, to, easing, callback ) {
|
||||||
return this.filter(":hidden").css("opacity", 0).show().end()
|
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 ) {
|
animate: function( prop, speed, easing, callback ) {
|
||||||
@ -241,8 +241,8 @@ jQuery.each({
|
|||||||
fadeIn: { opacity: "show" },
|
fadeIn: { opacity: "show" },
|
||||||
fadeOut: { opacity: "hide" }
|
fadeOut: { opacity: "hide" }
|
||||||
}, function( name, props ) {
|
}, function( name, props ) {
|
||||||
jQuery.fn[ name ] = function( speed, callback ) {
|
jQuery.fn[ name ] = function( speed, easing, callback ) {
|
||||||
return this.animate( props, speed, 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="slidetogglein" class='chain test'>slideToggleIn<div>slideToggleIn</div></div>
|
||||||
<div id="slidetoggleout" class='chain test out'>slideToggleOut<div>slideToggleOut</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>
|
||||||
|
|
||||||
<div id="fx-tests"></div>
|
<div id="fx-tests"></div>
|
||||||
|
14
test/unit/effects.js
vendored
14
test/unit/effects.js
vendored
@ -562,6 +562,9 @@ test("Chain hide show", function() {
|
|||||||
test("Chain show hide", function() {
|
test("Chain show hide", function() {
|
||||||
jQuery('#hide div').saveState().show('fast').hide('fast',jQuery.checkState);
|
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() {
|
test("Chain toggle in", function() {
|
||||||
jQuery('#togglein div').saveState().toggle('fast').toggle('fast',jQuery.checkState);
|
jQuery('#togglein div').saveState().toggle('fast').toggle('fast',jQuery.checkState);
|
||||||
@ -569,13 +572,18 @@ test("Chain toggle in", function() {
|
|||||||
test("Chain toggle out", function() {
|
test("Chain toggle out", function() {
|
||||||
jQuery('#toggleout div').saveState().toggle('fast').toggle('fast',jQuery.checkState);
|
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() {
|
test("Chain slideDown slideUp", function() {
|
||||||
jQuery('#slidedown div').saveState().slideDown('fast').slideUp('fast',jQuery.checkState);
|
jQuery('#slidedown div').saveState().slideDown('fast').slideUp('fast',jQuery.checkState);
|
||||||
});
|
});
|
||||||
test("Chain slideUp slideDown", function() {
|
test("Chain slideUp slideDown", function() {
|
||||||
jQuery('#slideup div').saveState().slideUp('fast').slideDown('fast',jQuery.checkState);
|
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() {
|
test("Chain slideToggle in", function() {
|
||||||
jQuery('#slidetogglein div').saveState().slideToggle('fast').slideToggle('fast',jQuery.checkState);
|
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);
|
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 ){
|
jQuery.makeTest = function( text ){
|
||||||
var elem = jQuery("<div></div>")
|
var elem = jQuery("<div></div>")
|
||||||
.attr("id", "test" + jQuery.makeTest.id++)
|
.attr("id", "test" + jQuery.makeTest.id++)
|
||||||
|
Loading…
Reference in New Issue
Block a user