UNPKG

1.69 kBJavaScriptView Raw
1export default function() {
2
3 var style = document.body.style;
4 var transitionStyle = "transition";
5 if (style.transition === undefined && style.webkitTransition !== undefined) transitionStyle = "-webkit-transition";
6 else if (style.transition === undefined && style.mozTransition !== undefined) transitionStyle = "-moz-transition";
7
8 var transformStyle = "transform";
9 if (style.transform === undefined && style.webkitTransform !== undefined) transformStyle = "-webkit-transform";
10 else if (style.transform === undefined && style.mozTransform !== undefined) transformStyle = "-moz-transform";
11
12 return {
13 restrict: "AC",
14 link: function(scope, element, attr) {
15 scope.$watch(attr.ngStylePrefixer, function ngStyleWatchAction(newStyles, oldStyles) {
16 var k;
17 if (oldStyles && (newStyles !== oldStyles)) {
18 for (k in oldStyles) {
19 element.css(k, '');
20 }
21 }
22
23 if (newStyles) {
24 var convertedStyles = {};
25
26 for (k in newStyles) {
27 var v = newStyles[k];
28 if (k == "transform") {
29 k = transformStyle;
30 }
31 if (k == "transition") {
32 k = transitionStyle;
33 if (v) v = v.replace("transform", transformStyle);
34 }
35
36 convertedStyles[k] = v;
37 }
38 element.css(convertedStyles);
39
40 }
41 }, true);
42 }
43 };
44}