diff options
| author | Matias Niemelä | 2013-11-15 00:09:37 -0500 | 
|---|---|---|
| committer | Matias Niemelä | 2013-11-20 20:54:07 -0500 | 
| commit | 1d50663b38ba042e8d748ffa6d48cfb5e93cfd7e (patch) | |
| tree | cd4fd86dd238bc78f765319ecc41d7798bcd2f0a | |
| parent | ec3c4f94c79e23c29abcde6e1d2f6eaf05e0664c (diff) | |
| download | angular.js-1d50663b38ba042e8d748ffa6d48cfb5e93cfd7e.tar.bz2 | |
fix(ngAnimate): use a fallback CSS property that doesn't break existing styles
The clip property seems to remove the box-shadow property when an absolute
positioned animation is ongoing. This fix changes the property to be border-spacing
which is also very underused. The border-spacing CSS property is only visible
when border-collapse is set to separate.
Closes #4902
Closes #5030
| -rw-r--r-- | css/angular.css | 8 | ||||
| -rw-r--r-- | src/ngAnimate/animate.js | 2 | ||||
| -rw-r--r-- | test/ngAnimate/animateSpec.js | 2 | 
3 files changed, 6 insertions, 6 deletions
| diff --git a/css/angular.css b/css/angular.css index 029d3a7d..3e20a999 100644 --- a/css/angular.css +++ b/css/angular.css @@ -15,8 +15,8 @@ ng\:form {   * when the active class isn't set, or if the active class doesn't   * contain any styles to transition to, then, if ngAnimate is used,   * it will appear as if the webpage is broken due to the forever hanging - * animations. The clip (!ie) and zoom (ie) CSS properties are used - * since they trigger a transition without making the browser + * animations. The border-spacing (!ie) and zoom (ie) CSS properties are + * used below since they trigger a transition without making the browser   * animate anything and they're both highly underused CSS properties */ -.ng-animate-start { clip:rect(0, auto, auto, 0); -ms-zoom:1.0001; } -.ng-animate-active { clip:rect(-1px, auto, auto, 0); -ms-zoom:1; } +.ng-animate-start { border-spacing:1px 1px; -ms-zoom:1.0001; } +.ng-animate-active { border-spacing:0px 0px; -ms-zoom:1; } diff --git a/src/ngAnimate/animate.js b/src/ngAnimate/animate.js index 3b94a651..1a287e91 100644 --- a/src/ngAnimate/animate.js +++ b/src/ngAnimate/animate.js @@ -1023,7 +1023,7 @@ angular.module('ngAnimate', ['ng'])            var propertyStyle = timings.transitionPropertyStyle;            if(propertyStyle.indexOf('all') == -1) {              applyFallbackStyle = true; -            var fallbackProperty = $sniffer.msie ? '-ms-zoom' : 'clip'; +            var fallbackProperty = $sniffer.msie ? '-ms-zoom' : 'border-spacing';              style += CSS_PREFIX + 'transition-property: ' + propertyStyle + ', ' + fallbackProperty + '; ';              style += CSS_PREFIX + 'transition-duration: ' + timings.transitionDurationStyle + ', ' + timings.transitionDuration + 's; ';            } diff --git a/test/ngAnimate/animateSpec.js b/test/ngAnimate/animateSpec.js index 46bb9538..48ea0041 100644 --- a/test/ngAnimate/animateSpec.js +++ b/test/ngAnimate/animateSpec.js @@ -823,7 +823,7 @@ describe("ngAnimate", function() {            $timeout.flush();            //IE removes the -ms- prefix when placed on the style -          var fallbackProperty = $sniffer.msie ? 'zoom' : 'clip'; +          var fallbackProperty = $sniffer.msie ? 'zoom' : 'border-spacing';            var regExp = new RegExp("transition-property:\\s+color\\s*,\\s*" + fallbackProperty + "\\s*;");            expect(child2.attr('style') || '').toMatch(regExp);            expect(child2.hasClass('ng-animate')).toBe(true); | 
