invalidate
invalidate():self
[覆盖] 清除任何内部记录的起始/结束值,如果你想重新启动动画而不恢复到之前记录的起始值,这会很有用。
返回值:self
self(便于链式调用)
细节
清除所有子补间动画的任何初始化数据(比如记录的起始/结束值),这在例如你想重新启动时间轴而不恢复到之前记录的起始值时可能很有用。当你invalidate()
当你vars
动画时,在下次渲染时它将被重新初始化,并且其
对象将重新解析。动画的时间(持续时间、开始时间、延迟)不会受到影响。element.x
比如说tl.to(element, {duration: 2, x: "+=100"})
它会在2秒内从0动画过渡到100。如果你restart()
那个补间动画,它将完全相同地执行(从0到100进行动画)。但假设在这个补间动画运行一次之后,你希望清除内部记录的起始/结束值,以便x可以基于当前位置再增加100进行动画,现在的位置(在此示例中是 100)。如果我们现在调用invalidate()
在该时间轴(或补间)上调用该方法后,它将在下一帧渲染时重新解析起始/结束值,从而导致x从100动画过渡到200。
当你使时间轴无效时,它会自动使其所有子项无效。
注意:如果你只是想在每次补间重复时都执行 invalidate(),你可以使用repeatRefresh: true
补间动画的一个特殊属性。
下面是一个非正式视频,解释了invalidate方法在单个补间动画上的工作原理。
使无效