Clip 单一动画帧实例
clip 对象用来定义每一种动画效果,必须加入到 animator 实例后才会发挥效果
创建一个单一动画帧实例
通过 new
一个 Clip
实例类型来创建动画帧实例
const clip = new Clip(options)
options
是 Clip
的构造参数,表示动画帧的配置
构造参数
options ClipOptionsType
表示实例的相关配置,目标接受以下属性:
style keyof CSS.Properties
动画的样式名称,如
opacity
、fontSize
、lineHeight
等value string | number
动画的样式的最终值
speed number
动画速度,即动画的样式每一帧改变的量,如果是从大到小的变化,这个值需要为负数
free boolean
是否自由模式,自由模式下
style
、value
、speed
通通无需设置,即使设置了也无效,具体使用详见自由模式onStart (this: Clip, el: HTMLElement) => void
动画开始事件,回调参数为绑定的
dom
元素onStop (this: Clip, el: HTMLElement) => void
动画停止事件,回调参数为绑定的
dom
元素onReset (this: Clip, el: HTMLElement) => void
动画重置事件,回调参数为绑定的
dom
元素onBeforeUpdate (this: Clip, el: HTMLElement, style?: keyof CSS.Properties, value?: string | number) => void
动画更新前触发事件,此时该帧的样式还未改变,回调参数依次为绑定的
dom
元素、元素动画相关的样式和元素动画更新时还未改变的值onUpdate (this: Clip, el: HTMLElement, style?: keyof CSS.Properties, value?: string | number) => void
动画更新时触发事件,此时该帧的样式已经改变,回调参数依次为绑定的
dom
元素、元素动画相关的样式和元素动画更新时已经改变的值onComplete (this: Clip, el: HTMLElement) => void
动画完成事件,回调参数为绑定的
dom
元素
API
speed
动画速度
类型
tsspeed: number
详细信息
speed
是clip
的属性,表示动画速度,可以获取,也可以直接修改,并即时生效示例
tsclip.speed = 5 //修改speed
state
动画状态
类型
tsstate: 0 | 1 | 2 | 3
详细信息
state
是clip
的属性,表示clip
的状态,0
为动画初始状态,1
为动画进行状态,2
为动画停止状态,3
为动画完成状态,可以修改此值,但需要谨慎修改,否则会影响动画进行示例
tsconsole.log(clip.state) // 2
interval
动画帧时间间隔
类型
tsinterval: number
详细信息
该属性只能在
onUpdate
或者onBeforeUpdate
事件里获取到值,其余情况为0
,表示此时此刻记录的与上一次动画帧发生的时间间隔,单位ms
,该属性能侧面的反映屏幕的刷新率水平,该值不能修改示例
tsconsole.log(clip.inertval) // 0
start()
开始动画
类型
tsstart(): this
详细信息
开始该
clip
动画,该方法返回clip
对象示例
tsclip.start()
stop()
停止动画
类型
tsstop(): this
详细信息
停止该
clip
动画,该方法返回clip
对象示例
tsclip.stop()
reset()
重置动画
类型
tsreset(resetStyle?: boolean): this
详细信息
提供一个入参,类型为
boolean
,默认为true
,表示是否将元素恢复到初始样式,如果为false
则只是针对Clip
实例进行重置调用该方法重置该
clip
动画,如果该clip
是chain
型则会从animator
中移除,该方法返回clip
对象示例
tsclip.reset()
chain()
链式调用动画
类型
tschain(clip: Clip): Clip
详细信息
提供一个入参,类型为
Clip
,表示需要链式调用的单一动画帧实例该方法会在当前的单一动画帧实例完成后将该
Clip
添加到当前单一动画帧实例所在的animator
实例中并执行,该方法返回该Clip
实例示例
tsclip.chain(clip2) clip.start() //当clip执行完毕后会自动接着执行clip2的动画
emitComplete()
主动触发完成事件
类型
tsemitComplete(): void
详细信息
主动触发
Clip
实例的onComplete
事件,该方法仅在自由模式下生效示例
tsclip.emitComplete()