|
48 | 48 | setLeft: function($elem, val) { $elem.css('margin-left', val); }
|
49 | 49 | },
|
50 | 50 | transform: {
|
51 |
| - getTop: function($elem) { return ($elem.css(vendorPrefix + 'transform') !== 'none' ? parseInt($elem.css(vendorPrefix + 'transform').match(/(-?[0-9]+)/g)[5], 10) * -1 : 0); }, |
| 51 | + getTop: function($elem) { return (getComputedStyle($elem[0])[vendorPrefix('transform')] !== 'none' ? parseInt(getComputedStyle($elem[0])[vendorPrefix('transform')].match(/(-?[0-9]+)/g)[5], 10) * -1 : 0); }, |
52 | 52 | setTop: function($elem, val) { setTransform($elem, val, 'Y'); },
|
53 | 53 |
|
54 |
| - getLeft: function($elem) { return ($elem.css(vendorPrefix + 'transform') !== 'none' ? parseInt($elem.css(vendorPrefix + 'transform').match(/(-?[0-9]+)/g)[4], 10) * -1 : 0); }, |
| 54 | + getLeft: function($elem) { return (getComputedStyle($elem[0])[vendorPrefix('transform')] !== 'none' ? parseInt(getComputedStyle($elem[0])[vendorPrefix('transform')].match(/(-?[0-9]+)/g)[4], 10) * -1 : 0); }, |
55 | 55 | setLeft: function($elem, val) { setTransform($elem, val, 'X'); }
|
56 | 56 | }
|
57 | 57 | },
|
|
68 | 68 | },
|
69 | 69 |
|
70 | 70 | vendorPrefix = (function() {
|
71 |
| - var ua = navigator.userAgent, |
72 |
| - prefix = ''; |
73 |
| - |
74 |
| - if (/WebKit/.test(ua)) { |
75 |
| - prefix = '-webkit-'; |
76 |
| - } else if (/Firefox/.test(ua)) { |
77 |
| - prefix = '-moz-'; |
78 |
| - } else if (window.opera) { |
79 |
| - prefix = '-o-'; |
80 |
| - } else if (/MSIE/.test(ua)) { |
81 |
| - prefix = '-ms-'; |
| 71 | + var prefixes = /^(Moz|Webkit|Khtml|O|ms|Icab)(?=[A-Z])/, |
| 72 | + style = document.getElementsByTagName('script')[0].style, |
| 73 | + prefix = '', |
| 74 | + prop; |
| 75 | + |
| 76 | + for (prop in style) { |
| 77 | + if (prefixes.test(prop)) { |
| 78 | + prefix = prop.match(prefixes)[0]; |
| 79 | + break; |
| 80 | + } |
82 | 81 | }
|
83 | 82 |
|
84 |
| - return prefix; |
| 83 | + if ('WebkitOpacity' in style) { prefix = 'Webkit'; } |
| 84 | + if ('KhtmlOpacity' in style) { prefix = 'Khtml'; } |
| 85 | + |
| 86 | + return function(property) { |
| 87 | + return prefix + (prefix.length > 0 ? property.charAt(0).toUpperCase() + property.slice(1) : property); |
| 88 | + }; |
85 | 89 | }()),
|
86 | 90 |
|
87 | 91 | supportsBackgroundPositionXY = document.createElement('div').style.backgroundPositionX !== undefined,
|
|
113 | 117 | }()),
|
114 | 118 |
|
115 | 119 | setTransform = function($elem, val, dimension /* 'X' or 'Y' */) {
|
116 |
| - var currentTransform = $elem.css(vendorPrefix + 'transform'); |
| 120 | + var currentTransform = getComputedStyle($elem[0])[vendorPrefix('transform')]; |
117 | 121 |
|
118 | 122 | if (currentTransform === 'none') {
|
119 |
| - $elem.css(vendorPrefix + 'transform', 'translate' + dimension + '(' + val + 'px)'); |
| 123 | + $elem[0].style[vendorPrefix('transform')] = 'translate' + dimension + '(' + val + 'px)'; |
120 | 124 | } else {
|
121 |
| - $elem.css(vendorPrefix + 'transform', replaceNthOccurence(currentTransform, /(-?[0-9]+[.]?[0-9]*)/g, (dimension === 'X' ? 5 : 6), val)); |
| 125 | + $elem[0].style[vendorPrefix('transform')] = replaceNthOccurence(currentTransform, /(-?[0-9]+[.]?[0-9]*)/g, (dimension === 'X' ? 5 : 6), val); |
122 | 126 | }
|
123 | 127 | },
|
124 | 128 |
|
|
0 commit comments