Tween 动画
介绍
Tween 用来做数值补间,适合滚动过渡、数值动画和轻量 UI 过场这类“只有一条时间轴”的场景。
它支持:
- 基于
requestAnimationFrame的逐帧推进 play / pause / resume / cancel / reset / seek- 自定义 easing
- 注入 scheduler,便于测试或宿主接管时间推进
快速使用
typescript
import { Tween, tweenEasings } from '@cat-kit/fe'
const tween = new Tween({
from: 0,
to: 100,
duration: 400,
easing: tweenEasings.easeOutQuad,
onUpdate: ({ value }) => {
console.log(value)
}
})
tween.play()交互示例
下面的 demo 会把 state、progress、value 和 easing 切换放在同一个面板里,适合先感受 Tween 的时间推进方式,再回头看 API。
vue
单条时间轴补间
切换 easing,观察位置、进度和值的同步变化。
stateidle
progress0.0%
value0.0
elapsed0ms
点击 play 观察 Tween 逐帧推进
API参考
构造参数
typescript
interface TweenOptions {
from?: number
to?: number
duration?: number
delay?: number
easing?: (progress: number) => number
autoplay?: boolean
scheduler?: TweenScheduler
onUpdate?: (frame: TweenFrame) => void
onFinish?: (frame: TweenFrame) => void
onCancel?: (frame: TweenFrame) => void
}常用实例方法
typescript
tween.play()
tween.pause()
tween.resume()
tween.cancel()
tween.reset()
tween.seek(0.5)状态与数值读取
typescript
tween.getState()
tween.getValue()
tween.getProgress()内置 easing
typescript
tweenEasings.linear
tweenEasings.easeInQuad
tweenEasings.easeOutQuad
tweenEasings.easeInOutQuad