Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Completes #11799: Maybe .progress() was cooler than I thought.

Generate a .progress() for each step of an animation, once all properties are changed. Closes gh-835.
  • Loading branch information...
commit c436ae04de80f8d232b5456f605331ecfaba4f49 1 parent a275837
@gnarf gnarf authored dmethvin committed
Showing with 21 additions and 6 deletions.
  1. +4 −1 src/effects.js
  2. +17 −5 test/unit/effects.js
View
5 src/effects.js
@@ -91,6 +91,8 @@ function Animation( elem, properties, options ) {
animation.tweens[ index ].run( percent );
}
+ deferred.notifyWith( elem, [ animation, percent, remaining ]);
+
if ( percent < 1 && length ) {
return remaining;
} else {
@@ -159,7 +161,8 @@ function Animation( elem, properties, options ) {
);
// attach callbacks from options
- return animation.done( animation.opts.done, animation.opts.complete )
+ return animation.progress( animation.opts.progress )
+ .done( animation.opts.done, animation.opts.complete )
.fail( animation.opts.fail )
.always( animation.opts.always );
}
View
22 test/unit/effects.js
@@ -1665,12 +1665,16 @@ asyncTest( "animate does not change start value for non-px animation (#7109)", 1
});
});
-asyncTest("Animation callbacks (#11797)", 8, function() {
+asyncTest("Animation callbacks (#11797)", 12, function() {
var targets = jQuery("#foo").children(),
- done = false;
+ done = false,
+ expectedProgress = 0;
targets.eq( 0 ).animate( {}, {
- duration: 10,
+ duration: 1,
+ progress: function( anim, percent ) {
+ equal( percent, 0, "empty: progress 0" );
+ },
done: function() {
ok( true, "empty: done" );
},
@@ -1689,7 +1693,10 @@ asyncTest("Animation callbacks (#11797)", 8, function() {
targets.eq( 1 ).animate({
opacity: 0
}, {
- duration: 10,
+ duration: 1,
+ progress: function( anim, percent ) {
+ equal( percent, 0, "stopped: progress 0" );
+ },
done: function() {
ok( false, "stopped: done" );
},
@@ -1707,7 +1714,12 @@ asyncTest("Animation callbacks (#11797)", 8, function() {
targets.eq( 2 ).animate({
opacity: 0
}, {
- duration: 10,
+ duration: 1,
+ progress: function( anim, percent ) {
+ equal( percent, expectedProgress, "async: progress " + expectedProgress );
+ // once at 0, once at 1
+ expectedProgress++;
+ },
done: function() {
ok( true, "async: done" );
},
Please sign in to comment.
Something went wrong with that request. Please try again.