一个用于 transition.to 动画的下拉式替换缓动曲线,基于阻尼弹簧。
它类似于 easeInOut,但提供了更自然的感觉。 这是因为它快速动画到位置(在 50% 的时间内完成 95%),然后缓慢地稳定到位置,提供平滑的动画,同时最大限度地减少内容对用户来说无法理解的时间(动画的最大缺点之一)。
用法
local SpringEasing = require "SpringEasing"
local objectTransition = SpringEasing.transition(myObject, {y=200, delta=true})
该模块主要用于演示 - 我建议直接抓取 -- EASING
块中的行,并将其放在对您有意义的地方。
transition.to
只需将任何所需的 easing.* 调用替换为 springEase 函数。
Composer
composer.effectList.fade.to.transition = springEase
composer.effectList.fade.from.transition = springEase
其中 “fade” 是您传递的效果。
系统动画
对于那些熟悉 Cocoa Touch 的人来说,它模仿了非常有用的 UIView animateWithDuration:delay:usingSpringWithDamping:initialSpringVelocity:options:animations:completion:
的效果,当分别使用 1.0 和 0.0 的标准阻尼和初始速度值调用时(即,没有弹跳效果)。
因此,您可以使用它来匹配 iOS 7+ 的动画,同时也能很好地适应 Material Design。
调整
inflectX
和inflectY
是曲线从缓入切换到缓出的点(例如,标准的 easeInOut 曲线的值为 0.5,0.5)。- 增加
decay
会导致曲线更快地接近 100%
贡献者:
Kyle Coburn