Blame view

天文台pc/tianwentai-ui/node_modules/framer-motion/dist/es/value/use-velocity.mjs 1.1 KB
bc518174   王天杨   提交两个项目文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
  "use client";
  import { frame } from 'motion-dom';
  import { useMotionValueEvent } from '../utils/use-motion-value-event.mjs';
  import { useMotionValue } from './use-motion-value.mjs';
  
  /**
   * Creates a `MotionValue` that updates when the velocity of the provided `MotionValue` changes.
   *
   * ```javascript
   * const x = useMotionValue(0)
   * const xVelocity = useVelocity(x)
   * const xAcceleration = useVelocity(xVelocity)
   * ```
   *
   * @public
   */
  function useVelocity(value) {
      const velocity = useMotionValue(value.getVelocity());
      const updateVelocity = () => {
          const latest = value.getVelocity();
          velocity.set(latest);
          /**
           * If we still have velocity, schedule an update for the next frame
           * to keep checking until it is zero.
           */
          if (latest)
              frame.update(updateVelocity);
      };
      useMotionValueEvent(value, "change", () => {
          // Schedule an update to this value at the end of the current frame.
          frame.update(updateVelocity, false, true);
      });
      return velocity;
  }
  
  export { useVelocity };
  //# sourceMappingURL=use-velocity.mjs.map