@@ -790,16 +790,22 @@ angular.module('ngAnimate', ['ng'])
790
790
if ( ! data ) {
791
791
var transitionDuration = 0 , transitionDelay = 0 ,
792
792
animationDuration = 0 , animationDelay = 0 ,
793
- transitionDelayStyle , animationDelayStyle ;
793
+ transitionDelayStyle , animationDelayStyle ,
794
+ transitionDurationStyle ,
795
+ transitionPropertyStyle ;
794
796
795
797
//we want all the styles defined before and after
796
798
forEach ( element , function ( element ) {
797
799
if ( element . nodeType == ELEMENT_NODE ) {
798
800
var elementStyles = $window . getComputedStyle ( element ) || { } ;
799
801
800
- transitionDuration = Math . max ( parseMaxTime ( elementStyles [ transitionProp + durationKey ] ) , transitionDuration ) ;
802
+ transitionDurationStyle = elementStyles [ transitionProp + durationKey ] ;
803
+
804
+ transitionDuration = Math . max ( parseMaxTime ( transitionDurationStyle ) , transitionDuration ) ;
801
805
802
806
if ( ! onlyCheckTransition ) {
807
+ transitionPropertyStyle = elementStyles [ transitionProp + propertyKey ] ;
808
+
803
809
transitionDelayStyle = elementStyles [ transitionProp + delayKey ] ;
804
810
805
811
transitionDelay = Math . max ( parseMaxTime ( transitionDelayStyle ) , transitionDelay ) ;
@@ -820,12 +826,14 @@ angular.module('ngAnimate', ['ng'])
820
826
} ) ;
821
827
data = {
822
828
total : 0 ,
829
+ transitionPropertyStyle : transitionPropertyStyle ,
830
+ transitionDurationStyle : transitionDurationStyle ,
823
831
transitionDelayStyle : transitionDelayStyle ,
824
- transitionDelay : transitionDelay ,
825
- transitionDuration : transitionDuration ,
832
+ transitionDelay : transitionDelay ,
833
+ transitionDuration : transitionDuration ,
826
834
animationDelayStyle : animationDelayStyle ,
827
- animationDelay : animationDelay ,
828
- animationDuration : animationDuration
835
+ animationDelay : animationDelay ,
836
+ animationDuration : animationDuration
829
837
} ;
830
838
if ( cacheKey ) {
831
839
lookupCache [ cacheKey ] = data ;
@@ -896,7 +904,7 @@ angular.module('ngAnimate', ['ng'])
896
904
node . style [ transitionProp + propertyKey ] = 'none' ;
897
905
}
898
906
899
- var activeClassName = '' ;
907
+ var activeClassName = 'ng-animate-active ' ;
900
908
forEach ( className . split ( ' ' ) , function ( klass , i ) {
901
909
activeClassName += ( i > 0 ? ' ' : '' ) + klass + '-active' ;
902
910
} ) ;
@@ -910,25 +918,38 @@ angular.module('ngAnimate', ['ng'])
910
918
return ;
911
919
}
912
920
921
+ var applyFallbackStyle , style = '' ;
913
922
if ( timings . transitionDuration > 0 ) {
914
923
node . style [ transitionProp + propertyKey ] = '' ;
924
+
925
+ var propertyStyle = timings . transitionPropertyStyle ;
926
+ if ( propertyStyle . indexOf ( 'all' ) == - 1 ) {
927
+ applyFallbackStyle = true ;
928
+ var fallbackProperty = $sniffer . msie ? '-ms-zoom' : 'clip' ;
929
+ style += prefix + 'transition-property: ' + propertyStyle + ', ' + fallbackProperty + '; ' ;
930
+ style += prefix + 'transition-duration: ' + timings . transitionDurationStyle + ', ' + timings . transitionDuration + 's; ' ;
931
+ }
915
932
}
916
933
917
934
if ( ii > 0 ) {
918
- var staggerStyle = '' ;
919
935
if ( stagger . transitionDelay > 0 && stagger . transitionDuration === 0 ) {
920
- staggerStyle += prefix + 'transition-delay: ' +
921
- prepareStaggerDelay ( timings . transitionDelayStyle , stagger . transitionDelay , ii ) + '; ' ;
936
+ var delayStyle = timings . transitionDelayStyle ;
937
+ if ( applyFallbackStyle ) {
938
+ delayStyle += ', ' + timings . transitionDelay + 's' ;
939
+ }
940
+
941
+ style += prefix + 'transition-delay: ' +
942
+ prepareStaggerDelay ( delayStyle , stagger . transitionDelay , ii ) + '; ' ;
922
943
}
923
944
924
945
if ( stagger . animationDelay > 0 && stagger . animationDuration === 0 ) {
925
- staggerStyle += prefix + 'animation-delay: ' +
926
- prepareStaggerDelay ( timings . animationDelayStyle , stagger . animationDelay , ii ) + '; ' ;
946
+ style += prefix + 'animation-delay: ' +
947
+ prepareStaggerDelay ( timings . animationDelayStyle , stagger . animationDelay , ii ) + '; ' ;
927
948
}
949
+ }
928
950
929
- if ( staggerStyle . length > 0 ) {
930
- formerStyle = applyStyle ( node , staggerStyle ) ;
931
- }
951
+ if ( style . length > 0 ) {
952
+ formerStyle = applyStyle ( node , style ) ;
932
953
}
933
954
934
955
element . addClass ( activeClassName ) ;
0 commit comments