UNPKG

framer-motion

Version:

A simple and powerful JavaScript animation library

46 lines (44 loc) 1.14 kB
const namedEdges = { start: 0, center: 0.5, end: 1, }; function resolveEdge(edge, length, inset = 0) { let delta = 0; /** * If we have this edge defined as a preset, replace the definition * with the numerical value. */ if (edge in namedEdges) { edge = namedEdges[edge]; } /** * Handle unit values */ if (typeof edge === "string") { const asNumber = parseFloat(edge); if (edge.endsWith("px")) { delta = asNumber; } else if (edge.endsWith("%")) { edge = asNumber / 100; } else if (edge.endsWith("vw")) { delta = (asNumber / 100) * document.documentElement.clientWidth; } else if (edge.endsWith("vh")) { delta = (asNumber / 100) * document.documentElement.clientHeight; } else { edge = asNumber; } } /** * If the edge is defined as a number, handle as a progress value. */ if (typeof edge === "number") { delta = length * edge; } return inset + delta; } export { namedEdges, resolveEdge };