@@ -790,16 +790,22 @@ angular.module('ngAnimate', ['ng'])
790790 if ( ! data ) {
791791 var transitionDuration = 0 , transitionDelay = 0 ,
792792 animationDuration = 0 , animationDelay = 0 ,
793- transitionDelayStyle , animationDelayStyle ;
793+ transitionDelayStyle , animationDelayStyle ,
794+ transitionDurationStyle ,
795+ transitionPropertyStyle ;
794796
795797 //we want all the styles defined before and after
796798 forEach ( element , function ( element ) {
797799 if ( element . nodeType == ELEMENT_NODE ) {
798800 var elementStyles = $window . getComputedStyle ( element ) || { } ;
799801
800- transitionDuration = Math . max ( parseMaxTime ( elementStyles [ transitionProp + durationKey ] ) , transitionDuration ) ;
802+ transitionDurationStyle = elementStyles [ transitionProp + durationKey ] ;
803+
804+ transitionDuration = Math . max ( parseMaxTime ( transitionDurationStyle ) , transitionDuration ) ;
801805
802806 if ( ! onlyCheckTransition ) {
807+ transitionPropertyStyle = elementStyles [ transitionProp + propertyKey ] ;
808+
803809 transitionDelayStyle = elementStyles [ transitionProp + delayKey ] ;
804810
805811 transitionDelay = Math . max ( parseMaxTime ( transitionDelayStyle ) , transitionDelay ) ;
@@ -820,12 +826,14 @@ angular.module('ngAnimate', ['ng'])
820826 } ) ;
821827 data = {
822828 total : 0 ,
829+ transitionPropertyStyle : transitionPropertyStyle ,
830+ transitionDurationStyle : transitionDurationStyle ,
823831 transitionDelayStyle : transitionDelayStyle ,
824- transitionDelay : transitionDelay ,
825- transitionDuration : transitionDuration ,
832+ transitionDelay : transitionDelay ,
833+ transitionDuration : transitionDuration ,
826834 animationDelayStyle : animationDelayStyle ,
827- animationDelay : animationDelay ,
828- animationDuration : animationDuration
835+ animationDelay : animationDelay ,
836+ animationDuration : animationDuration
829837 } ;
830838 if ( cacheKey ) {
831839 lookupCache [ cacheKey ] = data ;
@@ -896,7 +904,7 @@ angular.module('ngAnimate', ['ng'])
896904 node . style [ transitionProp + propertyKey ] = 'none' ;
897905 }
898906
899- var activeClassName = '' ;
907+ var activeClassName = 'ng-animate-active ' ;
900908 forEach ( className . split ( ' ' ) , function ( klass , i ) {
901909 activeClassName += ( i > 0 ? ' ' : '' ) + klass + '-active' ;
902910 } ) ;
@@ -910,25 +918,38 @@ angular.module('ngAnimate', ['ng'])
910918 return ;
911919 }
912920
921+ var applyFallbackStyle , style = '' ;
913922 if ( timings . transitionDuration > 0 ) {
914923 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+ }
915932 }
916933
917934 if ( ii > 0 ) {
918- var staggerStyle = '' ;
919935 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 ) + '; ' ;
922943 }
923944
924945 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 ) + '; ' ;
927948 }
949+ }
928950
929- if ( staggerStyle . length > 0 ) {
930- formerStyle = applyStyle ( node , staggerStyle ) ;
931- }
951+ if ( style . length > 0 ) {
952+ formerStyle = applyStyle ( node , style ) ;
932953 }
933954
934955 element . addClass ( activeClassName ) ;
0 commit comments