跳到主要内容

免费 CSS 三次贝塞尔缓动生成器

通过拖动控制点设计 CSS 缓动曲线,实时预览动画效果,复制 cubic-bezier() 值。包含过冲/弹跳预设。

加载后可离线使用

拖动青色和玫红色控制点来调整曲线形状

控制点
动效预览
宽度过渡
CSS 值
transition-timing-function: cubic-bezier(0.25, 0.1, 0.25, 1);

预设

玫红和青色控制点可拉出方框上方或下方(Y 超出 0-1 范围),以实现 back-out、anticipate 等"超调"/弹跳效果。X 保持在 0-1 范围内(时间不可逆)。

常见用途

  • 自定义CSS过渡缓动为悬停效果、菜单和UI过渡设计自然感觉的缓动。
  • 弹跳和超调动画通过将控制点拉过框外来创建有趣的弹簧/弹跳运动。
  • @keyframes动画的缓动为CSS关键帧动画选择正确的animation-timing-function。
  • JS动画库的缓动值获取GSAP、Framer Motion、anime.js等的cubic-bezier值。
  • 了解缓动的工作原理查看贝塞尔曲线与其产生的运动之间的关系。

工作原理

此编辑器完全在浏览器中使用 React 状态和 SVG 构建——曲线计算不依赖任何库。两个可拖动的控制点定义一条 SVG 三次贝塞尔路径,浏览器自身的 CSS 动画引擎通过将生成的 cubic-bezier() 值直接注入 @keyframes 规则来运行动效预览。

  1. 1
    拖动或输入控制点
    两个控制柄(青色的 P1 和玫红色的 P2)位于 SVG 画布上。拖动使用 Pointer Events API 和 setPointerCapture,因此即使超出 SVG 边界,控制柄也会跟随你的手指或光标。你也可以用方向键微调控制柄,或在 x1/y1/x2/y2 数字输入框中输入精确值。
  2. 2
    SVG 实时绘制曲线
    曲线是一个 SVG <path> 元素,其 C(三次贝塞尔)命令在每次状态更新时根据四个控制点坐标重新计算。没有 canvas、没有外部库——由浏览器的 SVG 渲染器直接绘制路径。
  3. 3
    浏览器 CSS 引擎预览缓动
    三个实时动画(滑动的圆点、宽度过渡和缩放)运行内联注入了 cubic-bezier() 值的 CSS @keyframes。由浏览器自身的动画引擎解释曲线,因此你看到的正是生产环境 CSS 会产生的效果。
  4. 4
    按你所用框架的语法复制代码片段
    标签页将同样的四个数字格式化为 CSS transition-timing-function、Tailwind 任意值类、Framer Motion 缓动数组或 anime.js 缓动字符串。代码片段通过 navigator.clipboard 写入剪贴板。曲线还会编码在网址哈希中(#b=x1,y1,x2,y2),方便分享或收藏。

相关工具

常见问题