如果动画没有到达终点,GSAP 是否可以阻止 'onComplete' 的执行?
Is it possible in GSAP to prevent the execution of 'onComplete' if the animation didn't reach its endpoint?
如果动画是
,有没有办法阻止执行onComplete
- 覆盖/中断或
- 从来没有发生过(因为它是通过
to()
实现的,并且已经达到了价值)?
我假设 onInterrupt
可以用于此?如果是,怎么做?
更新:
这是一个 jsfiddle 示例:
https://jsfiddle.net/2f1jbwra/2/
jsfiddle 与 kill()
: https://jsfiddle.net/2f1jbwra/4/
jsfiddle overwrite: "auto"
: https://jsfiddle.net/2f1jbwra/5/
中断的补间(和时间线)不会调用它们的 onComplete
回调,因为它们已被停止。因此,只需确保您的补间正在使用 overwrite: 'auto'
或 overwrite: true
.
杀死他们应该杀死的那些。
如果您实际上并没有中断补间,您可以通过使用 .addEventListener()
和 null
作为第二个参数来删除 onComplete
回调。
如果您正在中断补间并且需要挂接到该事件,您可以使用 onInterrupt
回调,但在这种情况下这对您没有帮助。
还值得注意的是,如果补间从一开始就没有开始,则不会触发任何事件(包括 onComplete
)。话虽如此,开始值和结束值相同的补间(就像您在问题中描述的情况一样)仍然像正常一样 运行 。只是你看不到任何变化,因为 none 是视觉上发生的。
仅供参考,如果您提出像这样的 GSAP 特定问题 in the GSAP forums。
,您更有可能获得更快的答案和额外的 commentary/helpful 信息和方法
如果动画是
,有没有办法阻止执行onComplete
- 覆盖/中断或
- 从来没有发生过(因为它是通过
to()
实现的,并且已经达到了价值)?
我假设 onInterrupt
可以用于此?如果是,怎么做?
更新:
这是一个 jsfiddle 示例: https://jsfiddle.net/2f1jbwra/2/
jsfiddle 与 kill()
: https://jsfiddle.net/2f1jbwra/4/
jsfiddle overwrite: "auto"
: https://jsfiddle.net/2f1jbwra/5/
中断的补间(和时间线)不会调用它们的 onComplete
回调,因为它们已被停止。因此,只需确保您的补间正在使用 overwrite: 'auto'
或 overwrite: true
.
如果您实际上并没有中断补间,您可以通过使用 .addEventListener()
和 null
作为第二个参数来删除 onComplete
回调。
如果您正在中断补间并且需要挂接到该事件,您可以使用 onInterrupt
回调,但在这种情况下这对您没有帮助。
还值得注意的是,如果补间从一开始就没有开始,则不会触发任何事件(包括 onComplete
)。话虽如此,开始值和结束值相同的补间(就像您在问题中描述的情况一样)仍然像正常一样 运行 。只是你看不到任何变化,因为 none 是视觉上发生的。
仅供参考,如果您提出像这样的 GSAP 特定问题 in the GSAP forums。
,您更有可能获得更快的答案和额外的 commentary/helpful 信息和方法