UNPKG

@studiometa/js-toolkit

Version:

A set of useful little bits of JavaScript to boost your project! 🚀

71 lines (70 loc) • 1.67 kB
import { isDefined } from "../is.js"; import { eachElements } from "./utils.js"; const TRANSFORM_PROPS = [ "x", "y", "z", "rotate", "rotateX", "rotateY", "rotateZ", "scale", "scaleX", "scaleY", "scaleZ", "skew", "skewX", "skewY" ]; function transform(elementOrElements, props) { if (!elementOrElements) return; let value = ""; if (isDefined(props.x) || isDefined(props.y) || isDefined(props.z)) { value += `translate3d(${props.x ?? 0}px, ${props.y ?? 0}px, ${props.z ?? 0}px) `; } if (isDefined(props.rotate)) { value += `rotate(${props.rotate}deg) `; } else { if (isDefined(props.rotateX)) { value += `rotateX(${props.rotateX}deg) `; } if (isDefined(props.rotateY)) { value += `rotateY(${props.rotateY}deg) `; } if (isDefined(props.rotateZ)) { value += `rotateZ(${props.rotateZ}deg) `; } } if (isDefined(props.scale)) { value += `scale(${props.scale}) `; } else { if (isDefined(props.scaleX)) { value += `scaleX(${props.scaleX}) `; } if (isDefined(props.scaleY)) { value += `scaleY(${props.scaleY}) `; } if (isDefined(props.scaleZ)) { value += `scaleZ(${props.scaleZ}) `; } } if (isDefined(props.skew)) { value += `skew(${props.skew}deg) `; } else { if (isDefined(props.skewX)) { value += `skewX(${props.skewX}deg) `; } if (isDefined(props.skewY)) { value += `skewY(${props.skewY}deg) `; } } eachElements(elementOrElements, (element) => { element.style.transform = value; }); return value; } export { TRANSFORM_PROPS, transform }; //# sourceMappingURL=transform.js.map