分类: 开发工具
三次贝塞尔生成器
设计自定义的 CSS 缓动曲线
拖动两个控制点来调整 cubic-bezier() 时间函数,实时查看曲线和运动预览的变化,并复制生成的 animation-timing-function 声明。曲线计算在你的浏览器中完成。
预设
动画进行到 50% 时的进度: 0.802
输出
animation-timing-function: cubic-bezier(0.25, 0.1, 0.25, 1);
本页的所有处理都在浏览器中完成,不会上传任何内容。
这个工具能做什么
CSS 过渡或动画的缓动效果,本质上是一条从 (0,0) 到 (1,1) 的三次贝塞尔曲线:中间的两个控制点决定了运动是先慢后快、有回弹,还是别的效果。常见的关键字(ease、ease-in-out 等)只是这个曲线空间里五个固定的点。这个工具会根据你设置的两个控制点绘出曲线,展示一个按该时间函数运动的方块,并给出运动进行到一半时缓动后的实际进度——这是仅凭曲线本身最难判断出来的数字。
使用方法
- 从一个预设开始,或直接设置两个控制点。
- 观察曲线和运动预览的实时变化。
- 把 cubic-bezier() 声明复制到你的过渡或动画中。
隐私说明
本工具完全在你的浏览器中运行。输入的内容不会被上传、保存或分享,关闭标签页即随之消失。
常见问题
- 有内容是在服务器上计算的吗?
- 不会。曲线、运动预览和进度数值全部由页面中运行的 JavaScript 计算完成。
- 为什么两个控制点的 X 值被限制在 0 到 1 之间?
- X 代表经过的时间,CSS 规范要求它必须从 0 向前推进到 1,曲线才能构成一个合法的时间函数。Y 代表缓动后的进度,允许小于 0 或大于 1,这正是实现回弹或过冲效果的方式。
- 运动进行到一半时的进度数值是什么意思?
- 它表示动画时长正好过去一半时,缓动后(而不是线性)的实际进度。如果这个值大于 50%,说明在中点时运动已经领先于匀速节奏。