calc-animate-val
Version:
根据总时长、当前时间、缓动函数来计算动画元素每次执行时所在的位置。
68 lines (67 loc) • 1.18 kB
TypeScript
export type EasingsName =
'easeInQuad' |
'easeOutQuad' |
'easeInOutQuad' |
'easeInCubic' |
'easeOutCubic' |
'easeInOutCubic' |
'easeInQuart' |
'easeOutQuart' |
'easeInOutQuart' |
'easeInQuint' |
'easeOutQuint' |
'easeInOutQuint' |
'easeInSine' |
'easeOutSine' |
'easeInOutSine' |
'easeInExpo' |
'easeOutExpo' |
'easeInOutExpo' |
'easeInCirc' |
'easeOutCirc' |
'easeInOutCirc' |
'easeOutBounce' |
'easeInBack' |
'easeOutBack' |
'easeInOutBack' |
'elastic' |
'swingFromTo' |
'swingFrom' |
'swingTo' |
'bounce' |
'bouncePast' |
'easeFromTo' |
'easeFrom' |
'easeTo' |
'linear' |
'sinusoidal' |
'reverse' |
'mirror' |
'flicker' |
'wobble' |
'pulse' |
'blink' |
'spring' |
'none' |
'full'
type position = Array<number>
type easingFn = (num: number) => number
type callback = (num: number | any[]) => void
export interface Options {
position?: position | [position]
duration?: number
timingFn?: EasingsName | easingFn
delay?: number
running: callback
done?: callback
}
export interface CalcFnResult {
run: (opt?: Options) => void
pause: () => void
done: () => void
}
export interface CalcAnimateVal {
(opt: Options): CalcFnResult
setRAF: any
setCancelRAF: any
}