跳至主要内容

Easing

Easing 模块实现了常见的缓动函数。此模块由 Animated.timing() 用于在动画中传达物理上可信的动作。

您可以在 https://easings.net/ 找到一些常见缓动函数的可视化效果。

预定义动画

Easing 模块通过以下方法提供了一些预定义动画

  • back 提供了一个基本的动画,其中对象在向前移动之前会稍微向后移动。
  • bounce 提供了一个弹跳动画。
  • ease 提供了一个基本的惯性动画。
  • elastic 提供了一个基本的弹簧交互。

标准函数

提供了三个标准的缓动函数

poly 函数可用于实现四次、五次和其他更高次幂函数。

其他函数

以下方法提供了其他数学函数

  • bezier 提供了一个三次贝塞尔曲线。
  • circle 提供了一个圆形函数。
  • sin 提供了一个正弦函数。
  • exp 提供了一个指数函数。

以下辅助函数用于修改其他缓动函数。

  • in 正向运行缓动函数。
  • inOut 使任何缓动函数对称。
  • out 反向运行缓动函数。

示例


参考

方法

step0()

static step0(n: number);

一个步进函数,对于任何正值 n 返回 1。


step1()

static step1(n: number);

一个步进函数,如果 n 大于或等于 1,则返回 1。


linear()

static linear(t: number);

一个线性函数,f(t) = t。位置与经过时间一一对应。

https://cubic-bezier.com/#0,0,1,1


ease()

static ease(t: number);

一个基本的惯性交互,类似于一个物体缓慢加速到速度。

https://cubic-bezier.com/#.42,0,1,1


quad()

static quad(t: number);

一个二次函数,f(t) = t * t。位置等于经过时间的平方。

https://easings.net/#easeInQuad


cubic()

static cubic(t: number);

一个三次函数,f(t) = t * t * t。位置等于经过时间的立方。

https://easings.net/#easeInCubic


poly()

static poly(n: number);

一个幂函数。位置等于经过时间的 N 次幂。

n = 4: https://easings.net/#easeInQuart n = 5: https://easings.net/#easeInQuint


sin()

static sin(t: number);

一个正弦函数。

https://easings.net/#easeInSine


circle()

static circle(t: number);

一个圆形函数。

https://easings.net/#easeInCirc


exp()

static exp(t: number);

一个指数函数。

https://easings.net/#easeInExpo


elastic()

static elastic(bounciness: number);

一个基本的弹性交互,类似于一个弹簧来回振荡。

默认弹性为 1,这会稍微超出一点。0 弹性根本不会超出,而 N > 1 的弹性将超出大约 N 次。

https://easings.net/#easeInElastic


back()

static back(s)

Animated.parallel() 一起使用以创建一个基本效果,其中对象在动画开始时稍微向后动画。


bounce()

static bounce(t: number);

提供了一个基本的弹跳效果。

https://easings.net/#easeInBounce


bezier()

static bezier(x1: number, y1: number, x2: number, y2: number);

提供了一个三次贝塞尔曲线,相当于 CSS Transitions 的 transition-timing-function

一个用于可视化三次贝塞尔曲线的实用工具可以在 https://cubic-bezier.com/ 找到。


in()

static in(easing: number);

正向运行缓动函数。


out()

static out(easing: number);

反向运行缓动函数。


inOut()

static inOut(easing: number);

使任何缓动函数对称。缓动函数将在持续时间的一半内正向运行,然后在剩余的持续时间内反向运行。