]> source.dussan.org Git - jquery.git/commitdiff
Effects: set default easing using jQuery.easing._default
authorTimmy Willison <timmywillisn@gmail.com>
Tue, 5 May 2015 17:24:20 +0000 (10:24 -0700)
committerTimmy Willison <timmywillisn@gmail.com>
Tue, 5 May 2015 17:26:02 +0000 (10:26 -0700)
Fixes gh-2219
Close gh-2218

src/effects.js
src/effects/Tween.js
test/unit/effects.js

index 993ebb80405d7dbf39cc8ccb9e28a6f5ce2db780..d90a1b28e53523a7247478776e5f98a8a5ef5ab1 100644 (file)
@@ -286,7 +286,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(),
index 40a02659ed22ecf328846ef08deb94300683d973..810d1113348f55e84c2177942ae9e0e0f66d5b99 100644 (file)
@@ -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;
index bb5b0ce7d5f6405a2858501a5da76219b4723ed1..27c145974f6316cf8f963c95caa57fd88898fb31 100644 (file)
@@ -1191,45 +1191,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 );
 });
@@ -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 );
+});
 
 })();