@@ -876,13 +876,6 @@ angular.module('ngAnimate', ['ng'])
876
876
} , 10 , false ) ;
877
877
}
878
878
879
- function applyStyle ( node , style ) {
880
- var oldStyle = node . getAttribute ( 'style' ) || '' ;
881
- var newStyle = ( oldStyle . length > 0 ? '; ' : '' ) + style ;
882
- node . setAttribute ( 'style' , newStyle ) ;
883
- return oldStyle ;
884
- }
885
-
886
879
function getElementAnimationDetails ( element , cacheKey ) {
887
880
var data = cacheKey ? lookupCache [ cacheKey ] : null ;
888
881
if ( ! data ) {
@@ -1057,17 +1050,18 @@ angular.module('ngAnimate', ['ng'])
1057
1050
var maxDelayTime = Math . max ( timings . transitionDelay , timings . animationDelay ) * 1000 ;
1058
1051
var startTime = Date . now ( ) ;
1059
1052
var css3AnimationEvents = ANIMATIONEND_EVENT + ' ' + TRANSITIONEND_EVENT ;
1060
- var formerStyle ;
1061
1053
var ii = data . ii ;
1062
1054
1063
- var applyFallbackStyle , style = '' ;
1055
+ var applyFallbackStyle , style = '' , appliedStyles = [ ] ;
1064
1056
if ( timings . transitionDuration > 0 ) {
1065
1057
var propertyStyle = timings . transitionPropertyStyle ;
1066
1058
if ( propertyStyle . indexOf ( 'all' ) == - 1 ) {
1067
1059
applyFallbackStyle = true ;
1068
1060
var fallbackProperty = $sniffer . msie ? '-ms-zoom' : 'border-spacing' ;
1069
1061
style += CSS_PREFIX + 'transition-property: ' + propertyStyle + ', ' + fallbackProperty + '; ' ;
1070
1062
style += CSS_PREFIX + 'transition-duration: ' + timings . transitionDurationStyle + ', ' + timings . transitionDuration + 's; ' ;
1063
+ appliedStyles . push ( CSS_PREFIX + 'transition-property' ) ;
1064
+ appliedStyles . push ( CSS_PREFIX + 'transition-duration' ) ;
1071
1065
}
1072
1066
} else {
1073
1067
unblockKeyframeAnimations ( element ) ;
@@ -1082,16 +1076,19 @@ angular.module('ngAnimate', ['ng'])
1082
1076
1083
1077
style += CSS_PREFIX + 'transition-delay: ' +
1084
1078
prepareStaggerDelay ( delayStyle , stagger . transitionDelay , ii ) + '; ' ;
1079
+ appliedStyles . push ( CSS_PREFIX + 'transition-delay' ) ;
1085
1080
}
1086
1081
1087
1082
if ( stagger . animationDelay > 0 && stagger . animationDuration === 0 ) {
1088
1083
style += CSS_PREFIX + 'animation-delay: ' +
1089
1084
prepareStaggerDelay ( timings . animationDelayStyle , stagger . animationDelay , ii ) + '; ' ;
1085
+ appliedStyles . push ( CSS_PREFIX + 'animation-delay' ) ;
1090
1086
}
1091
1087
}
1092
1088
1093
- if ( style . length > 0 ) {
1094
- formerStyle = applyStyle ( node , style ) ;
1089
+ if ( appliedStyles . length > 0 ) {
1090
+ var oldStyle = node . getAttribute ( 'style' ) || '' ;
1091
+ node . setAttribute ( 'style' , oldStyle + ' ' + style ) ;
1095
1092
}
1096
1093
1097
1094
element . on ( css3AnimationEvents , onAnimationProgress ) ;
@@ -1104,10 +1101,8 @@ angular.module('ngAnimate', ['ng'])
1104
1101
element . off ( css3AnimationEvents , onAnimationProgress ) ;
1105
1102
element . removeClass ( activeClassName ) ;
1106
1103
animateClose ( element , className ) ;
1107
- if ( formerStyle != null ) {
1108
- formerStyle . length > 0 ?
1109
- node . setAttribute ( 'style' , formerStyle ) :
1110
- node . removeAttribute ( 'style' ) ;
1104
+ for ( var i in appliedStyles ) {
1105
+ node . style . removeProperty ( appliedStyles [ i ] ) ;
1111
1106
}
1112
1107
} ;
1113
1108
0 commit comments