cubic-bezier() 生成器

拖动两个控制点来塑造一条 CSS cubic-bezier() 缓动曲线,预览运动效果,并复制这条计时函数——全部在你的浏览器中完成。

这款 cubic-bezier() 生成器完全在你的浏览器中运行。你拖动的曲线、动画预览和生成的 cubic-bezier() CSS 绝不会离开你的设备,也不会有任何内容上传到 ArrayKit。

打开 CSS 格式化工具

关于 cubic-bezier() 生成器

这款 cubic-bezier() 生成器让你在一张实时图上拖动一条 CSS 缓动曲线的两个控制点,然后复制用于过渡或动画的精确 cubic-bezier(x1, y1, x2, y2) 计时函数。从 ease、ease-in-out 或有弹性的 ease-out-back 等命名预设开始,然后用鼠标或方向键微调手柄。一个动画小圆点会实时播放你的曲线,让你在粘贴之前先感受一下加速度。它专为那些在调校 transition-timing-function 或 animation-timing-function 的运动、又不想靠猜数字的前端开发者和设计师而设计。一切都在你的设备上渲染——曲线、预览和生成的 CSS 绝不会离开你的浏览器。

功能特性

如何使用 cubic-bezier() 生成器

  1. 选择像 ease-in-out 这样的预设作为起点
  2. 拖动任一控制点以重塑曲线,或用方向键微移它
  3. 观看动画预览,感受你构建出的加速度
  4. 复制 cubic-bezier() 值或完整的 transition-timing-function 规则
  5. 将它粘贴进你的 CSS transition 或 animation 简写中

示例

输入

control point 1: 0.34, 1.56
control point 2: 0.64, 1

输出

.card {
  transition: transform 300ms cubic-bezier(0.34, 1.56, 0.64, 1);
}

一条 ease-out-back 曲线过冲超过 1,营造出细微的弹跳。

常见错误与故障排除

常见问题

cubic-bezier() 中的四个数字是什么意思?
它们是两个控制点的 x 和 y 坐标:cubic-bezier(x1, y1, x2, y2)。曲线的起点和终点固定在 (0,0) 和 (1,1),这两个手柄会弯曲它们之间的路径,以设定动画的加速方式。
为什么 x 值必须保持在 0 和 1 之间?
在 CSS 中,x 轴是动画随时间的进度,它只会向前推进。让 x1 和 x2 保持在 0 到 1,可保证曲线在每一时刻只代表一个值。y 可以超出该区间,以营造过冲或预备动作。
我如何做出有弹性或过冲的缓动?
给一个控制点一个大于 1 或小于 0 的 y。例如 cubic-bezier(0.34, 1.56, 0.64, 1) 会在稳定之前先过冲超过终点,读起来像一次轻柔的弹跳。把一个手柄拖到图的上方或下方即可做到这一点。
ease 和 ease-in-out 有什么区别?
ease 是 cubic-bezier(0.25, 0.1, 0.25, 1),起步比对称的 ease-in-out(即 cubic-bezier(0.42, 0, 0.58, 1))稍快一些。ease-in-out 均匀地加速和减速,而 ease 会把运动略微前置。
我也可以把这个值用于 animation-timing-function 吗?
可以。cubic-bezier() 可用于任何接受缓动函数的 CSS 位置,包括 transition-timing-function、animation-timing-function,以及 transition 和 animation 简写中的计时位。
拖动曲线会向服务器发送任何东西吗?
不会。编辑器、动画预览和生成的 CSS 都用纯 JavaScript 在你的浏览器中计算。关于你曲线的任何内容都不会上传到 ArrayKit。

相关工具

全部 ArrayKit 工具