Skip to content

snu.easeInSine() / easeOutSine() / easeInOutSine()

正弦缓动

基于正弦函数的缓动曲线:

  • easeInSine:缓入,由慢到快(先慢后快)。
  • easeOutSine:缓出,由快到慢。
  • easeInOutSine:缓入缓出,两端慢中间快。

参数 t 为归一化进度(通常 0~1),返回值为当前时刻的进度/插值量。

兼容性

WebAndroid

属性

名称类型必备默认值描述
tNumber-归一化进度(0~1)

返回值

类型必备描述
Number缓动处理后的进度值

示例

typescript
let v1 = snu.easeInSine(0.5)
let v2 = snu.easeOutSine(0.5)
let v3 = snu.easeInOutSine(0.5)

snu.easeInQuad() / easeOutQuad() / easeInOutQuad()

二次方缓动

使用二次方函数()的缓动曲线:缓入 、缓出 1-(1-t)²、缓入缓出 t<0.5 ? 2t² : 1-(-2t+2)²/2

兼容性

WebAndroid

属性

名称类型必备默认值描述
tNumber-归一化进度(0~1)

返回值

类型必备描述
Number缓动处理后的进度值

示例

typescript
let v = snu.easeInOutQuad(0.5)

snu.easeInCubic() / easeOutCubic() / easeInOutCubic()

三次方缓动

使用三次方函数()的缓动曲线:缓入 、缓出 1-(1-t)³、缓入缓出 t<0.5 ? 4t³ : 1-(-2t+2)³/2

兼容性

WebAndroid

属性

名称类型必备默认值描述
tNumber-归一化进度(0~1)

返回值

类型必备描述
Number缓动处理后的进度值

示例

typescript
let v = snu.easeOutCubic(0.5)

snu.easeInQuart() / easeOutQuart() / easeInOutQuart()

四次方缓动

使用四次方函数(t⁴)的缓动曲线:缓入 t⁴、缓出 1-(1-t)⁴、缓入缓出 t<0.5 ? 8t⁴ : 1-(-2t+2)⁴/2

兼容性

WebAndroid

属性

名称类型必备默认值描述
tNumber-归一化进度(0~1)

返回值

类型必备描述
Number缓动处理后的进度值

示例

typescript
let v = snu.easeInQuart(0.5)

snu.easeInQuint() / easeOutQuint() / easeInOutQuint()

五次方缓动

使用五次方函数(t⁵)的缓动曲线:缓入 t⁵、缓出 1-(1-t)⁵、缓入缓出 t<0.5 ? 16t⁵ : 1-(-2t+2)⁵/2

兼容性

WebAndroid

属性

名称类型必备默认值描述
tNumber-归一化进度(0~1)

返回值

类型必备描述
Number缓动处理后的进度值

示例

typescript
let v = snu.easeInOutQuint(0.5)

snu.easeInExpo() / easeOutExpo() / easeInOutExpo()

指数缓动

使用指数函数的缓动曲线:缓入 2^(10t-10) 起速较慢、缓出 1-2^(-10t)、缓入缓出在前半段缓进后半段缓出。曲线变化明显、斜率大。

兼容性

WebAndroid

属性

名称类型必备默认值描述
tNumber-归一化进度(0~1)

返回值

类型必备描述
Number缓动处理后的进度值

示例

typescript
let v = snu.easeInExpo(0.5)

snu.easeInCirc() / easeOutCirc() / easeInOutCirc()

圆形缓动

基于圆的方程(圆弧)的缓动曲线:缓入 1-sqrt(1-t²)、缓出 sqrt(1-(1-t)²)、缓入缓出两端缓的表现,适合做带有"圆弧感"的位移动画。

兼容性

WebAndroid

属性

名称类型必备默认值描述
tNumber-归一化进度(0~1)

返回值

类型必备描述
Number缓动处理后的进度值

示例

typescript
let v = snu.easeInCirc(0.5)

snu.easeInBack() / easeOutBack() / easeInOutBack()

回退缓动

带有过冲(overshoot)的回退缓动:缓入先向反方向退再前进、缓出会略越过终点再回落到终点、缓入缓出在两端均有轻微回退。常用于弹性效果、弹跳感较强的动画。

兼容性

WebAndroid

属性

名称类型必备默认值描述
tNumber-归一化进度(0~1)

返回值

类型必备描述
Number缓动处理后的进度值(可能超出 0~1 区间)

示例

typescript
let v = snu.easeOutBack(0.6)

snu.easeInElastic() / easeOutElastic() / easeInOutElastic()

弹性缓动

带有周期性震荡的弹性缓动(类似弹簧):缓入先震荡后达到目标、缓出在接近终点时来回震荡、缓入缓出两端均有震荡。动画效果强烈,适合强调型过渡。

兼容性

WebAndroid

属性

名称类型必备默认值描述
tNumber-归一化进度(0~1)

返回值

类型必备描述
Number缓动处理后的进度值(可能超出 0~1 区间)

示例

typescript
let v = snu.easeOutElastic(0.5)

snu.easeInBounce() / easeOutBounce() / easeInOutBounce()

弹跳缓动

模拟物体弹跳(碰撞衰减)的缓动曲线:缓出 easeOutBounce 是典型的"落下后多次弹起"效果、缓入为其镜像、缓入缓出在两端合入反弹。适合落地/着地类动画。

兼容性

WebAndroid

属性

名称类型必备默认值描述
tNumber-归一化进度(0~1)

返回值

类型必备描述
Number缓动处理后的进度值

示例

typescript
let v = snu.easeOutBounce(0.5)

snu.linear()

线性缓动

线性缓动,匀速递增:返回与输入 t 相同的值(t)。用于需要恒定速度的过渡。

兼容性

WebAndroid

属性

名称类型必备默认值描述
tNumber-归一化进度(0~1)

返回值

类型必备描述
Number原样返回 t

示例

typescript
let v = snu.linear(0.5) // 0.5

使用 MIT 协议