aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/effects.js5
-rw-r--r--src/effects/Tween.js5
-rw-r--r--test/unit/effects.js50
3 files changed, 42 insertions, 18 deletions
diff --git a/src/effects.js b/src/effects.js
index e19b04b06..4ead51ccd 100644
--- a/src/effects.js
+++ b/src/effects.js
@@ -289,7 +289,10 @@ function Animation( elem, properties, options ) {
animation = deferred.promise({
elem: elem,
props: jQuery.extend( {}, properties ),
- opts: jQuery.extend( true, { specialEasing: {} }, options ),
+ opts: jQuery.extend( true, {
+ specialEasing: {},
+ easing: jQuery.easing._default
+ }, options ),
originalProperties: properties,
originalOptions: options,
startTime: fxNow || createFxNow(),
diff --git a/src/effects/Tween.js b/src/effects/Tween.js
index 57f80908e..478fed007 100644
--- a/src/effects/Tween.js
+++ b/src/effects/Tween.js
@@ -13,7 +13,7 @@ Tween.prototype = {
init: function( elem, options, prop, end, easing, unit ) {
this.elem = elem;
this.prop = prop;
- this.easing = easing || "swing";
+ this.easing = easing || jQuery.easing._default;
this.options = options;
this.start = this.now = this.cur();
this.end = end;
@@ -105,7 +105,8 @@ jQuery.easing = {
},
swing: function( p ) {
return 0.5 - Math.cos( p * Math.PI ) / 2;
- }
+ },
+ _default: "swing"
};
jQuery.fx = Tween.prototype.init;
diff --git a/test/unit/effects.js b/test/unit/effects.js
index 99faa1438..39e10d10c 100644
--- a/test/unit/effects.js
+++ b/test/unit/effects.js
@@ -1178,45 +1178,45 @@ test("animate with per-property easing", function(){
test("animate with CSS shorthand properties", function(){
expect(11);
- var _default_count = 0,
- _special_count = 0,
+ var easeAnimation_count = 0,
+ easeProperty_count = 0,
propsBasic = { "padding": "10 20 30" },
- propsSpecial = { "padding": [ "1 2 3", "_special" ] };
+ propsSpecial = { "padding": [ "1 2 3", "propertyScope" ] };
- jQuery.easing._default = function(p) {
+ jQuery.easing.animationScope = function(p) {
if ( p >= 1 ) {
- _default_count++;
+ easeAnimation_count++;
}
return p;
};
- jQuery.easing._special = function(p) {
+ jQuery.easing.propertyScope = function(p) {
if ( p >= 1 ) {
- _special_count++;
+ easeProperty_count++;
}
return p;
};
jQuery("#foo")
- .animate( propsBasic, 200, "_default", function() {
+ .animate( propsBasic, 200, "animationScope", function() {
equal( this.style.paddingTop, "10px", "padding-top was animated" );
equal( this.style.paddingLeft, "20px", "padding-left was animated" );
equal( this.style.paddingRight, "20px", "padding-right was animated" );
equal( this.style.paddingBottom, "30px", "padding-bottom was animated" );
- equal( _default_count, 4, "per-animation default easing called for each property" );
- _default_count = 0;
+ equal( easeAnimation_count, 4, "per-animation default easing called for each property" );
+ easeAnimation_count = 0;
})
- .animate( propsSpecial, 200, "_default", function() {
+ .animate( propsSpecial, 200, "animationScope", function() {
equal( this.style.paddingTop, "1px", "padding-top was animated again" );
equal( this.style.paddingLeft, "2px", "padding-left was animated again" );
equal( this.style.paddingRight, "2px", "padding-right was animated again" );
equal( this.style.paddingBottom, "3px", "padding-bottom was animated again" );
- equal( _default_count, 0, "per-animation default easing not called" );
- equal( _special_count, 4, "special easing called for each property" );
+ equal( easeAnimation_count, 0, "per-animation default easing not called" );
+ equal( easeProperty_count, 4, "special easing called for each property" );
jQuery(this).css("padding", "0");
- delete jQuery.easing._default;
- delete jQuery.easing._special;
+ delete jQuery.easing.animationScope;
+ delete jQuery.easing.propertyScope;
});
this.clock.tick( 400 );
});
@@ -2212,5 +2212,25 @@ test( "Animation should go to its end state if document.hidden = true", 1, funct
}
});
+test( "jQuery.easing._default (#2218)", 2, function() {
+ jQuery( "#foo" )
+ .animate({ width: "5px" }, {
+ duration: 5,
+ start: function( anim ) {
+ equal( anim.opts.easing, jQuery.easing._default,
+ "anim.opts.easing should be equal to jQuery.easing._default when the easing argument is not given" );
+ }
+ })
+ .animate({ height: "5px" }, {
+ duration: 5,
+ easing: "linear",
+ start: function( anim ) {
+ equal( anim.opts.easing, "linear",
+ "anim.opts.easing should be equal to the easing argument" );
+ }
+ })
+ .stop();
+ this.clock.tick( 25 );
+});
})();