CSS 缓动与动画可视化器

可视化 CSS cubic-bezier 缓动曲线,在位置/透明度/缩放上实时预览,选择预设并导出可复制的 CSS

通过同时查看缓动曲线和实时预览来调校 CSS 动画时间。

输入:

  • 输入自定义 cubic-bezier(x1, y1, x2, y2),选择命名预设(linear、ease、ease-in/out、ease-in/out-back、ease-in/out-expo、snappy…),或直接输入关键字。
  • 设置时长(ms)和延迟(ms)。

报告渲染:

  • 缓动曲线(进度 vs 时间)为 SVG,标注两个贝塞尔控制点,以虚线线性为参照。过冲曲线(y<0 或 y>1,如 ease-out-back)会被标记,因为它们会产生弹动但可能引起布局跳动。
  • 三个实时预览——translateX、opacity、scale——使用你选择的真实 CSS 缓动动画,带重放按钮。
  • 可直接复制的 CSS(transition@keyframes 两种形式)。

贝塞尔求解器使用牛顿-拉夫森法(含二分回退)将时间映射到进度,与浏览器一致。

示例结果

1 个示例

为按钮弹出效果调一个干脆的 ease-out-back

查看带过冲的 ease-out-back 曲线,预览位置/透明度/缩放的弹动,并复制 CSS。

Easing curve + live preview + copy-ready CSS.
查看输入参数
{ "easing": "cubic-bezier(0.34, 1.56, 0.64, 1)", "preset": "ease-out-back", "duration": 600, "delay": 0 }

关键信息

分类
设计与颜色
输入类型
text, select, number
输出类型
html
样本覆盖
4
支持 API
Yes

概览

CSS 缓动与动画可视化器是一个专为前端开发者与设计师打造的在线调试工具,支持输入自定义 cubic-bezier 参数或选择预设,实时渲染 SVG 缓动曲线,并在位置、透明度和缩放上提供动画预览,同时生成可直接复制的 CSS transition 和 keyframes 代码。

适用场景

  • 需要微调 CSS 动画的贝塞尔曲线参数以实现平滑的过渡效果时。
  • 需要直观预览带有回弹(过冲)效果的缓动动画并检查是否会引起布局跳动时。
  • 需要快速获取符合浏览器真实渲染特性的 CSS transition 或 @keyframes 代码时。

工作原理

  • 输入自定义的 cubic-bezier 坐标值,或者从下拉菜单中选择内置的缓动预设(如 ease-out-back 或 snappy)。
  • 设置动画的时长(duration)和延迟时间(delay),系统将通过牛顿-拉夫森法精确计算时间与进度的映射关系。
  • 实时查看 SVG 缓动曲线图表,并在 translateX、opacity 和 scale 三个维度上预览动画效果。
  • 一键复制自动生成的 CSS transition 或 @keyframes 代码,直接应用到前端项目中。

使用场景

调试网页按钮悬停或弹窗弹出时的回弹(Bounce)动画效果。
优化页面淡入淡出及缩放过渡的平滑度。
为前端开发人员提供快速生成和复制 CSS 动画代码的工具。

用户案例

1. 调试弹窗弹出的回弹效果

前端开发工程师
背景原因
需要在用户点击按钮时弹出一个卡片,要求卡片带有轻微的放大回弹效果,以增强交互的生动感。
解决问题
手写 cubic-bezier 参数很难精准控制回弹的幅度和速度,且无法直观看到缩放动画的实际表现。
如何使用
选择 ease-out-back 预设,将时长设为 600ms,在 scale 预览区域观察卡片缩放的弹动幅度并微调参数。
示例配置
{
  "easing": "cubic-bezier(0.34, 1.56, 0.64, 1)",
  "preset": "ease-out-back",
  "duration": 600,
  "delay": 0
}
效果
成功调校出满意的回弹曲线,并直接复制生成的 CSS transition 代码应用到弹窗样式中。

2. 优化侧边栏滑出的平滑度

交互设计师
背景原因
正在设计一个从屏幕右侧滑出的侧边导航栏,默认的 ease-out 显得有些生硬,需要更具科技感的快速滑出效果。
解决问题
需要一种“前快后慢”的 snappy 缓动曲线,并需要实时对比位移(translateX)的动画节奏。
如何使用
在缓动输入框中输入自定义的 cubic-bezier 参数或选择 snappy 预设,观察 translateX 实时预览的滑出速度。
示例配置
{
  "easing": "cubic-bezier(0.19, 1, 0.22, 1)",
  "preset": "snappy",
  "duration": 800,
  "delay": 0
}
效果
获得了极具动感的滑出效果,并导出了对应的 @keyframes 代码用于实现侧边栏动画。

用 Samples 测试

design

相关专题

常见问题

这个工具支持哪些缓动预设?

支持 linear、ease、ease-in/out、ease-out-back、snappy 等多种常用及带回弹效果的预设。

什么是过冲曲线(Overshooting)?

当贝塞尔曲线的 y 值小于 0 或大于 1 时(如 ease-out-back),动画会产生超出边界的弹动效果。

导出的 CSS 代码格式是什么?

提供可以直接复制的 CSS transition 属性和 @keyframes 关键帧动画两种格式。

这里的动画预览是实时的吗?

是的,提供 translateX(位移)、opacity(透明度)和 scale(缩放)三种效果的实时动画预览,并支持手动重放。

贝塞尔曲线是如何求解的?

采用与浏览器一致的牛顿-拉夫森法(含二分法回退)将时间精确映射到动画进度。

API 文档

请求端点

POST /zh/api/tools/css-easing-visualizer

请求参数

参数名 类型 必填 描述
easing text -
preset select -
duration number -
delay number -

响应格式

{
  "result": "
Processed HTML content
", "error": "Error message (optional)", "message": "Notification message (optional)", "metadata": { "key": "value" } }
HTML: HTML

AI MCP 文档

将此工具添加到您的 MCP 服务器配置中:

{
  "mcpServers": {
    "elysiatools-css-easing-visualizer": {
      "name": "css-easing-visualizer",
      "description": "可视化 CSS cubic-bezier 缓动曲线,在位置/透明度/缩放上实时预览,选择预设并导出可复制的 CSS",
      "baseUrl": "https://elysiatools.com/mcp/sse?toolId=css-easing-visualizer",
      "command": "",
      "args": [],
      "env": {},
      "isActive": true,
      "type": "sse"
    }
  }
}

你可以串联多个工具,比如:`https://elysiatools.com/mcp/sse?toolId=png-to-webp,jpg-to-webp,gif-to-webp`,最多20个。

如果遇见问题,请联系我们:[email protected]