You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何反转缓动函数?以cubic-out缓动为例的动画开发问题

解决方案

要实现你想要的反转缓动效果,只需将收缩时的缓动代码从 easing.ease(1f - factor) 替换为 1f - easing.ease(factor) 即可。

具体解释:

  • 你的 cubic-out 缓动函数定义为:{ input -> 1 - (1 - input).pow(3.0) },当输入因子从 0 到 1 时,输出从 0 到 1,曲线呈凹向下的递增形态(对应展开动画的快启动、慢收尾效果)。
  • 对于收缩动画,你需要的是镜像反转的曲线:从 1 到 0 递减、凹向上的形态(初始变化快,后期逐渐平缓)。
    • 使用 1f - easing.ease(factor) 时,先通过缓动函数得到因子的 cubic-out 值,再用 1 减去该值,最终得到 (1 - factor)^3 的结果——这恰好是你收缩动画图中所示的凹向上递减曲线。
  • 你当前使用的 easing.ease(1f - factor) 会计算出 1 - factor^3,对应的是凹向下的递减曲线(慢启动、快收尾),与你想要的收缩效果不符。

代码修改:

在 getAnimationFactor 函数中,找到处理收缩动画的分支,将:

easing.ease(1f - factor)

替换为:

1f - easing.ease(factor)

同时移除误提交的无用 if 语句即可。

内容的提问来源于stack exchange,提问作者Wolfsurge

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 19:30:55