32 lines
825 B
JavaScript
32 lines
825 B
JavaScript
|
import getComputedStyle from './getComputedStyle';
|
||
|
import hyphenate from './hyphenateStyle';
|
||
|
import isTransform from './isTransform';
|
||
|
|
||
|
function style(node, property) {
|
||
|
var css = '';
|
||
|
var transforms = '';
|
||
|
|
||
|
if (typeof property === 'string') {
|
||
|
return node.style.getPropertyValue(hyphenate(property)) || getComputedStyle(node).getPropertyValue(hyphenate(property));
|
||
|
}
|
||
|
|
||
|
Object.keys(property).forEach(function (key) {
|
||
|
var value = property[key];
|
||
|
|
||
|
if (!value && value !== 0) {
|
||
|
node.style.removeProperty(hyphenate(key));
|
||
|
} else if (isTransform(key)) {
|
||
|
transforms += key + "(" + value + ") ";
|
||
|
} else {
|
||
|
css += hyphenate(key) + ": " + value + ";";
|
||
|
}
|
||
|
});
|
||
|
|
||
|
if (transforms) {
|
||
|
css += "transform: " + transforms + ";";
|
||
|
}
|
||
|
|
||
|
node.style.cssText += ";" + css;
|
||
|
}
|
||
|
|
||
|
export default style;
|