transition-timing-function 控制动画速度变化,常用关键词如 ease、linear、ease-in、ease-out、ease-in-out 实现不同节奏,cubic-bezier() 可自定义贝塞尔曲线实现弹性或过冲效果,结合场景选择合适曲线可提升动画流畅度与用户体验。
在CSS中实现平滑的过渡动画,除了设置过渡属性和持续时间外,timing-function 是决定动画“节奏感”的关键。它控制动画从开始到结束的速度变化方式,让过渡更自然或更具表现力。
该属性定义过渡过程中速度的变化曲线。常用预设关键词包括:
示例:
transition: opacity 0.5s ease-in-out;如果预设的 timing-function 不够用,可以用 cubic-bezier() 函数自定义速度曲线。它接受四个参数:
cubic-bezier(x1, y1, x2, y2)
这四个值代表贝塞尔曲线的两个控制点(P1 和 P2),其中 x 必须在 [0, 1] 范围内,y 可以超出范围实现“回弹”或“过冲”效果。
常见自定义曲线示例:
使用方法:
transition: transform 0.6s cubic-bezier(0.68, -0.55, 0.27, 1.55);动画的 timing-function 应服务于用户体验:
基本上就这些。掌握 timing-function 和 cubic-bezier,能让 CSS 过渡摆脱生硬,变得生动自然。