人民医院前端

useTransition.ts 543B

123456789101112131415161718192021222324252627
  1. // @ts-nocheck
  2. import {ease} from './animation/ease';
  3. import {Timeline, Animation} from './animation/';
  4. import {ref, watch, Ref} from './vue'
  5. export function useTransition(percent: Ref<number>, options: {duration: number}) {
  6. const current = ref(0)
  7. let tl = new Timeline();
  8. watch(() => percent.value, (v) => {
  9. tl.start();
  10. tl.add(
  11. new Animation(
  12. current.value,
  13. v,
  14. options.duration,
  15. 0,
  16. ease,
  17. v => {
  18. current.value = v < 0.0001 ? 0: v
  19. }
  20. )
  21. );
  22. }, {immediate: true})
  23. return current
  24. }