UNPKG

framer-motion

Version:

A simple and powerful React animation library

29 lines (26 loc) 949 B
import { motionValue } from '../index.mjs'; function createScrollMotionValues() { return { scrollX: motionValue(0), scrollY: motionValue(0), scrollXProgress: motionValue(0), scrollYProgress: motionValue(0), }; } function setProgress(offset, maxOffset, value) { value.set(!offset || !maxOffset ? 0 : offset / maxOffset); } function createScrollUpdater(values, getOffsets) { var update = function () { var _a = getOffsets(), xOffset = _a.xOffset, yOffset = _a.yOffset, xMaxOffset = _a.xMaxOffset, yMaxOffset = _a.yMaxOffset; // Set absolute positions values.scrollX.set(xOffset); values.scrollY.set(yOffset); // Set 0-1 progress setProgress(xOffset, xMaxOffset, values.scrollXProgress); setProgress(yOffset, yMaxOffset, values.scrollYProgress); }; update(); return update; } export { createScrollMotionValues, createScrollUpdater };