Skip to content

缓动类型 ​

0. Linear ​

typescript
function linear(x: number): number {
    return x;
}

1. InQuad ​

typescript
function easeInQuad(x: number): number {
    return x * x;
}

2. OutQuad ​

typescript
function easeOutQuad(x: number): number {
    return 1 - (1 - x) * (1 - x);
}

3. InOutQuad ​

typescript
function easeInOutQuad(x: number): number {
    return x < 0.5 ? 2 * x * x : 1 - Math.pow(-2 * x + 2, 2) / 2;
}

4. InCubic ​

typescript
function easeInCubic(x: number): number {
    return x * x * x;
}

5. OutCubic ​

typescript
function easeOutCubic(x: number): number {
    return 1 - Math.pow(1 - x, 3);
}

6. InOutCubic ​

typescript
function easeInOutCubic(x: number): number {
    return x < 0.5 ? 4 * x * x * x : 1 - Math.pow(-2 * x + 2, 3) / 2;
}

7. InQuart ​

typescript
function easeInQuart(x: number): number {
    return x * x * x * x;
}

8. OutQuart ​

typescript
function easeOutQuart(x: number): number {
    return 1 - Math.pow(1 - x, 4);
}

9. InOutQuart ​

typescript
function easeInOutQuart(x: number): number {
    return x < 0.5 ? 8 * x * x * x * x : 1 - Math.pow(-2 * x + 2, 4) / 2;
}

10. InQuint ​

typescript
function easeInQuint(x: number): number {
    return x * x * x * x * x;
}

11. OutQuint ​

typescript
function easeOutQuint(x: number): number {
    return 1 - Math.pow(1 - x, 5);
}

12. InOutQuint ​

typescript
function easeInOutQuint(x: number): number {
    return x < 0.5 ? 16 * x * x * x * x * x : 1 - Math.pow(-2 * x + 2, 5) / 2;
}

13. Zero ​

typescript
function easeZero(x: number): number {
    return 0;
}

14. One ​

typescript
function easeOne(x: number): number {
    return 1;
}

15. InCirc ​

typescript
function easeInCirc(x: number): number {
    return 1 - Math.sqrt(1 - Math.pow(x, 2));
}

16. OutCirc ​

typescript
function easeOutCirc(x: number): number {
    return Math.sqrt(1 - Math.pow(x - 1, 2));
}

17. OutSine ​

typescript
function easeOutSine(x: number): number {
    return Math.sin((x * Math.PI) / 2);
}

18. InSine ​

typescript
function easeInSine(x: number): number {
    return 1 - Math.cos((x * Math.PI) / 2);
}