弹簧动画曲线缓动

569
顶一下!

一个用于 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。

调整

  • inflectXinflectY 是曲线从缓入切换到缓出的点(例如,标准的 easeInOut 曲线的值为 0.5,0.5)。
  • 增加 decay 会导致曲线更快地接近 100%
分类: 
贡献者: 
Kyle Coburn