UNPKG

motion-v

Version:

<h1 align="center"> <img width="35" height="35" alt="Motion logo" src="https://github.com/user-attachments/assets/00d6d1c3-72c4-4c2f-a664-69da13182ffc" /><br />Motion for Vue</h1>

18 lines (17 loc) 583 B
import { cancelFrame, frame } from "motion-dom"; import { onBeforeUpdate, onUnmounted } from "vue"; function useAnimationFrame(callback) { let initialTimestamp = 0; const provideTimeSinceStart = ({ timestamp, delta }) => { if (!initialTimestamp) initialTimestamp = timestamp; callback(timestamp - initialTimestamp, delta); }; const cancel = () => cancelFrame(provideTimeSinceStart); onBeforeUpdate(() => { cancel(); frame.update(provideTimeSinceStart, true); }); onUnmounted(() => cancel()); frame.update(provideTimeSinceStart, true); } export { useAnimationFrame };