]> 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:24:20 +0000 (10:24 -0700)
Fixes gh-2219
Close gh-2218

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

index e19b04b065134764e49906955a4823313a87b71c..4ead51ccd61bfa6861b509e6383ba4c1cde489b1 100644 (file)
@@ -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(),
index 57f80908efafd8370aaec8977a7bbe3753626844..478fed007b7021dd98b81976d5ed0fbf4af3cc77 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 99faa143872d4ba792ec9333bdcf7890f95648d5..39e10d10cba54cb71b86b11eefdc5a742a4ea753 100644 (file)
@@ -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 );
+});
 
 })();