framer-motion
Version:
A simple and powerful JavaScript animation library
19 lines (16 loc) • 527 B
JavaScript
import { frame, cancelFrame } from 'motion-dom';
function observeTimeline(update, timeline) {
let prevProgress;
const onFrame = () => {
const { currentTime } = timeline;
const percentage = currentTime === null ? 0 : currentTime.value;
const progress = percentage / 100;
if (prevProgress !== progress) {
update(progress);
}
prevProgress = progress;
};
frame.update(onFrame, true);
return () => cancelFrame(onFrame);
}
export { observeTimeline };