mirror of
https://github.com/jquery/jquery.git
synced 2024-11-23 02:54:22 +00:00
Effects: set default easing using jQuery.easing._default
Fixes gh-2219 Close gh-2218
This commit is contained in:
parent
d6933917d2
commit
b7f9e62642
5
src/effects.js
vendored
5
src/effects.js
vendored
@ -286,7 +286,10 @@ function Animation( elem, properties, options ) {
|
|||||||
animation = deferred.promise({
|
animation = deferred.promise({
|
||||||
elem: elem,
|
elem: elem,
|
||||||
props: jQuery.extend( {}, properties ),
|
props: jQuery.extend( {}, properties ),
|
||||||
opts: jQuery.extend( true, { specialEasing: {} }, options ),
|
opts: jQuery.extend( true, {
|
||||||
|
specialEasing: {},
|
||||||
|
easing: jQuery.easing._default
|
||||||
|
}, options ),
|
||||||
originalProperties: properties,
|
originalProperties: properties,
|
||||||
originalOptions: options,
|
originalOptions: options,
|
||||||
startTime: fxNow || createFxNow(),
|
startTime: fxNow || createFxNow(),
|
||||||
|
@ -13,7 +13,7 @@ Tween.prototype = {
|
|||||||
init: function( elem, options, prop, end, easing, unit ) {
|
init: function( elem, options, prop, end, easing, unit ) {
|
||||||
this.elem = elem;
|
this.elem = elem;
|
||||||
this.prop = prop;
|
this.prop = prop;
|
||||||
this.easing = easing || "swing";
|
this.easing = easing || jQuery.easing._default;
|
||||||
this.options = options;
|
this.options = options;
|
||||||
this.start = this.now = this.cur();
|
this.start = this.now = this.cur();
|
||||||
this.end = end;
|
this.end = end;
|
||||||
@ -105,7 +105,8 @@ jQuery.easing = {
|
|||||||
},
|
},
|
||||||
swing: function( p ) {
|
swing: function( p ) {
|
||||||
return 0.5 - Math.cos( p * Math.PI ) / 2;
|
return 0.5 - Math.cos( p * Math.PI ) / 2;
|
||||||
}
|
},
|
||||||
|
_default: "swing"
|
||||||
};
|
};
|
||||||
|
|
||||||
jQuery.fx = Tween.prototype.init;
|
jQuery.fx = Tween.prototype.init;
|
||||||
|
50
test/unit/effects.js
vendored
50
test/unit/effects.js
vendored
@ -1191,45 +1191,45 @@ test("animate with per-property easing", function(){
|
|||||||
test("animate with CSS shorthand properties", function(){
|
test("animate with CSS shorthand properties", function(){
|
||||||
expect(11);
|
expect(11);
|
||||||
|
|
||||||
var _default_count = 0,
|
var easeAnimation_count = 0,
|
||||||
_special_count = 0,
|
easeProperty_count = 0,
|
||||||
propsBasic = { "padding": "10 20 30" },
|
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 ) {
|
if ( p >= 1 ) {
|
||||||
_default_count++;
|
easeAnimation_count++;
|
||||||
}
|
}
|
||||||
return p;
|
return p;
|
||||||
};
|
};
|
||||||
|
|
||||||
jQuery.easing._special = function(p) {
|
jQuery.easing.propertyScope = function(p) {
|
||||||
if ( p >= 1 ) {
|
if ( p >= 1 ) {
|
||||||
_special_count++;
|
easeProperty_count++;
|
||||||
}
|
}
|
||||||
return p;
|
return p;
|
||||||
};
|
};
|
||||||
|
|
||||||
jQuery("#foo")
|
jQuery("#foo")
|
||||||
.animate( propsBasic, 200, "_default", function() {
|
.animate( propsBasic, 200, "animationScope", function() {
|
||||||
equal( this.style.paddingTop, "10px", "padding-top was animated" );
|
equal( this.style.paddingTop, "10px", "padding-top was animated" );
|
||||||
equal( this.style.paddingLeft, "20px", "padding-left was animated" );
|
equal( this.style.paddingLeft, "20px", "padding-left was animated" );
|
||||||
equal( this.style.paddingRight, "20px", "padding-right was animated" );
|
equal( this.style.paddingRight, "20px", "padding-right was animated" );
|
||||||
equal( this.style.paddingBottom, "30px", "padding-bottom was animated" );
|
equal( this.style.paddingBottom, "30px", "padding-bottom was animated" );
|
||||||
equal( _default_count, 4, "per-animation default easing called for each property" );
|
equal( easeAnimation_count, 4, "per-animation default easing called for each property" );
|
||||||
_default_count = 0;
|
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.paddingTop, "1px", "padding-top was animated again" );
|
||||||
equal( this.style.paddingLeft, "2px", "padding-left 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.paddingRight, "2px", "padding-right was animated again" );
|
||||||
equal( this.style.paddingBottom, "3px", "padding-bottom was animated again" );
|
equal( this.style.paddingBottom, "3px", "padding-bottom was animated again" );
|
||||||
equal( _default_count, 0, "per-animation default easing not called" );
|
equal( easeAnimation_count, 0, "per-animation default easing not called" );
|
||||||
equal( _special_count, 4, "special easing called for each property" );
|
equal( easeProperty_count, 4, "special easing called for each property" );
|
||||||
|
|
||||||
jQuery(this).css("padding", "0");
|
jQuery(this).css("padding", "0");
|
||||||
delete jQuery.easing._default;
|
delete jQuery.easing.animationScope;
|
||||||
delete jQuery.easing._special;
|
delete jQuery.easing.propertyScope;
|
||||||
});
|
});
|
||||||
this.clock.tick( 400 );
|
this.clock.tick( 400 );
|
||||||
});
|
});
|
||||||
@ -2227,5 +2227,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 );
|
||||||
|
});
|
||||||
|
|
||||||
})();
|
})();
|
||||||
|
Loading…
Reference in New Issue
Block a user