aboutsummaryrefslogtreecommitdiffstats
path: root/src/ngAnimate
diff options
context:
space:
mode:
authorMatias Niemelä2013-11-23 21:44:14 -0500
committerMatias Niemelä2013-11-23 22:05:04 -0500
commit2efe82309ac8ff4f67df8b6e40a539ea31e15804 (patch)
treefe9e53023f8eb3e0de6035786cef601d8377faf8 /src/ngAnimate
parenta090400f09d7993d102f527609879cdc74abae60 (diff)
downloadangular.js-2efe82309ac8ff4f67df8b6e40a539ea31e15804.tar.bz2
fix($animate): ensure blocked keyframe animations are unblocked before the DOM operation
Closes #5106
Diffstat (limited to 'src/ngAnimate')
-rw-r--r--src/ngAnimate/animate.js10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/ngAnimate/animate.js b/src/ngAnimate/animate.js
index 26d48012..fde8a7fa 100644
--- a/src/ngAnimate/animate.js
+++ b/src/ngAnimate/animate.js
@@ -1032,7 +1032,10 @@ angular.module('ngAnimate', ['ng'])
}
function unblockKeyframeAnimations(element) {
- element[0].style[ANIMATION_PROP] = '';
+ var node = element[0], prop = ANIMATION_PROP;
+ if(node.style[prop] && node.style[prop].length > 0) {
+ element[0].style[prop] = '';
+ }
}
function animateRun(element, className, activeAnimationComplete) {
@@ -1063,8 +1066,6 @@ angular.module('ngAnimate', ['ng'])
appliedStyles.push(CSS_PREFIX + 'transition-property');
appliedStyles.push(CSS_PREFIX + 'transition-duration');
}
- } else {
- unblockKeyframeAnimations(element);
}
if(ii > 0) {
@@ -1167,6 +1168,7 @@ angular.module('ngAnimate', ['ng'])
var cancel = preReflowCancellation;
afterReflow(function() {
unblockTransitions(element);
+ unblockKeyframeAnimations(element);
//once the reflow is complete then we point cancel to
//the new cancellation function which will remove all of the
//animation properties from the active animation
@@ -1232,6 +1234,7 @@ angular.module('ngAnimate', ['ng'])
if(cancellationMethod) {
afterReflow(function() {
unblockTransitions(element);
+ unblockKeyframeAnimations(element);
animationCompleted();
});
return cancellationMethod;
@@ -1248,6 +1251,7 @@ angular.module('ngAnimate', ['ng'])
if(cancellationMethod) {
afterReflow(function() {
unblockTransitions(element);
+ unblockKeyframeAnimations(element);
animationCompleted();
});
return cancellationMethod;