d3-ease
示例 · 缓动是一种扭曲时间的方法,用于在动画中控制明显的运动。它最常用于慢进慢出。通过缓动时间,动画过渡更加平滑,并表现出更合理的运动。
此模块中的缓动类型实现 ease 方法,它接受一个归一化的时间 t 并返回相应的“缓动”时间 tʹ。归一化时间和缓动时间通常在 [0,1] 范围内,其中 0 表示动画的开始,1 表示动画的结束;一些缓动类型,例如 easeElastic,可能会返回此范围之外的缓动时间。良好的缓动类型应在 t = 0 时返回 0,在 t = 1 时返回 1。
这些缓动类型主要基于 Robert Penner 的工作。
ease(t)
给定指定的归一化时间 t,通常在 [0,1] 范围内,返回“缓动”时间 tʹ,通常也在 [0,1] 范围内。0 表示动画的开始,1 表示动画的结束。良好的实现应在 t = 0 时返回 0,在 t = 1 时返回 1。例如,要应用 easeCubic 缓动
const te = d3.easeCubic(t);
要应用自定义 弹性 缓动,请在动画开始前创建缓动函数
const ease = d3.easeElastic.period(0.4);
然后在动画期间应用缓动函数
const te = ease(t);
另请参阅 transition.ease.
easeLinear
源代码 · 线性缓动;恒等函数;linear(t) 返回 t。
easePoly
源代码 · easePolyInOut 的别名。
easePolyIn
多项式缓动;将 t 提高到指定的 指数。如果未指定指数,则默认为 3,等效于 easeCubicIn。
easePolyOut
反向多项式缓动;等效于 1 - easePolyIn(1 - t)。如果未指定指数,则默认为 3,等效于 easeCubicOut。
easePolyInOut
对称多项式缓动;对 0–0.5 范围内的 t 进行 easePolyIn 缩放,对 0.5–1 范围内的 t 进行 easePolyOut 缩放。如果未指定指数,则默认为 3,等效于 easeCubic。
easePoly.exponent(e)
返回一个新的多项式缓动,具有指定的指数 e。例如,要创建 easeLinear、easeQuad 和 easeCubic 的等效项
const linear = d3.easePoly.exponent(1);
const quad = d3.easePoly.exponent(2);
const cubic = d3.easePoly.exponent(3);
easeQuad
源代码 · easeQuadInOut 的别名。
easeQuadIn
二次缓动;等效于 easePolyIn.exponent(2)。
easeQuadOut
反向二次缓动;等效于 1 - easeQuadIn(1 - t)。也等效于 easePolyOut.exponent(2)。
easeQuadInOut
对称二次缓动;对 0–0.5 范围内的 t 进行 easeQuadIn 缩放,对 0.5–1 范围内的 t 进行 easeQuadOut 缩放。也等效于 easePoly.exponent(2)。
easeCubic
源代码 · easeCubicInOut 的别名。
easeCubicIn
三次缓动;等效于 easePolyIn.exponent(3)。
easeCubicOut
反向三次缓动;等效于 1 - easeCubicIn(1 - t)。也等效于 easePolyOut.exponent(3)。
easeCubicInOut
对称三次缓动;对 0–0.5 范围内的 t 进行 easeCubicIn 缩放,对 0.5–1 范围内的 t 进行 easeCubicOut 缩放。也等效于 easePoly.exponent(3)。
easeSin
源代码 · easeSinInOut 的别名。
easeSinIn
正弦缓动;返回 sin(t)。
easeSinOut
反向正弦缓动;等效于 1 - easeSinIn(1 - t)。
easeSinInOut
对称正弦缓动;对 0–0.5 范围内的 t 进行 easeSinIn 缩放,对 0.5–1 范围内的 t 进行 easeSinOut 缩放。
easeExp
源代码 · easeExpInOut 的别名。
easeExpIn
指数缓动;将 2 提高到 10 × (t - 1) 的指数。
easeExpOut
反向指数缓动;等效于 1 - easeExpIn(1 - t)。
easeExpInOut
对称指数缓动;对 0–0.5 范围内的 t 进行 easeExpIn 缩放,对 0.5–1 范围内的 t 进行 easeExpOut 缩放。
easeCircle
源代码 · easeCircleInOut 的别名。
easeCircleIn
圆形缓动。
easeCircleOut
反向圆形缓动;等效于 1 - easeCircleIn(1 - t)。
easeCircleInOut
对称圆形缓动;对 0–0.5 范围内的 t 进行 easeCircleIn 缩放,对 0.5–1 范围内的 t 进行 easeCircleOut 缩放。
easeElastic
源代码 · easeElasticOut 的别名。
easeElasticIn
弹性缓动,就像橡皮筋一样。振荡的 振幅 和 周期 可配置;如果未指定,则分别默认为 1 和 0.3。
easeElasticOut
反向弹性缓动;等效于 1 - elasticIn(1 - t)。
easeElasticInOut
对称弹性缓动;将 elasticIn 缩放至 t 在 0–0.5 之间,将 elasticOut 缩放至 t 在 0.5–1 之间。
easeElastic.amplitude(a)
返回一个具有指定振幅 a 的新弹性缓动。振幅 a 必须大于或等于 1。
easeElastic.period(p)
返回一个具有指定周期 p 的新弹性缓动。
easeBack
源代码 · easeBackInOut 的别名。
easeBackIn
类似于舞者在跳离地面之前弯曲膝盖的 预备动作 缓动。 过度 的程度是可以配置的;如果未指定,则默认值为 1.70158。
easeBackOut
反向预备动作缓动;等效于 1 - easeBackIn(1 - t)。
easeBackInOut
对称预备动作缓动;将 easeBackIn 缩放至 t 在 0–0.5 之间,将 easeBackOut 缩放至 t 在 0.5–1 之间。
easeBack.overshoot(s)
返回一个具有指定过度 s 的新回弹缓动。
easeBounce
源代码 · easeBounceOut 的别名。
弹跳缓动,如橡胶球。
easeBounceIn
easeBounceOut
反向弹跳缓动;等效于 1 - easeBounceIn(1 - t)。
easeBounceInOut
对称弹跳缓动;将 easeBounceIn 缩放至 t 在 0–0.5 之间,将 easeBounceOut 缩放至 t 在 0.5–1 之间。