sprite sheet CSS 动画生成器

在你的浏览器中直接把一张 sprite sheet 变成可复制粘贴的 CSS steps() 动画,并带有实时预览。

你的 sprite sheet 在浏览器本地读取以构建预览并生成 CSS;图片绝不会被上传,始终留在你的设备上。

在整理输出?试试 CSS 格式化工具。

关于 sprite sheet CSS 动画生成器

这款 sprite sheet CSS 动画生成器会把一条帧带或一个网格变成基于 @keyframes 和 steps() 时序函数、可直接粘贴的 CSS 动画。放入一张 sprite sheet 图片以获得实时预览,或者只输入帧宽度、高度和数量,让工具替你计算 background-position。它既能处理单个水平行,也能处理完整网格,按行优先先跨列再换行地遍历帧,并把关键帧与 background-size 配对,使每个单元格都精确落位。用 FPS 或总时长设置速度,为动画命名,选择无限循环或固定迭代次数,并挑选一个方向。你会得到完整的 CSS——元素尺寸、@keyframes 块和 animation 简写——可复制或下载为 .css 文件。一切都在你的设备上运行,因此上传的表单会在本地读取,绝不会离开你的浏览器。

功能特性

如何使用 sprite sheet CSS 动画生成器

  1. 上传一张 sprite sheet,或跳过上传直接输入你的帧尺寸。
  2. 选择单行或网格,然后设置帧宽度、高度和数量(网格还需列数和行数)。
  3. 用 FPS 或总时长设置速度,然后为动画命名并选择迭代和方向。
  4. 在实时预览中观察元素动画,确认取帧是否正确。
  5. 复制生成的 CSS,或将其下载为 .css 文件并放入你的项目。

示例

输入

8 frames, 64×64 each, single row, 12 fps, infinite

输出

.sprite {
  width: 64px;
  height: 64px;
  background-repeat: no-repeat;
  animation: sprite 0.667s steps(8) infinite normal;
}

@keyframes sprite {
  from { background-position: 0 0; }
  to { background-position: -512px 0; }
}

单行 sprite sheet 只需 steps(8) 和一个两停关键帧即可播放所有帧。

常见错误与故障排除

常见问题

steps() 是如何为 sprite sheet 制作动画的?
steps(n) 把动画分成 n 个相等的区块并在它们之间跳跃,而不做插值,因此 background-position 会从一帧突变到下一帧。使用等于帧数的 steps() 意味着每帧只显示一步,不会有模糊的过渡位置。
我需要上传我的图片吗?
不需要。上传一张 sprite sheet 会给你实时预览,但你也可以仅凭帧宽度、高度和数量生成正确的 CSS。没有图片时,预览会显示一个占位网格,而计算和输出仍然准确。
单行模式和网格模式有什么区别?
单行模式假设所有帧都在一条水平帧带上,并发出一个紧凑的 from/to 关键帧。网格模式通过为每帧发出一个 background-position 停点、先跨列再换行来处理多行 sprite sheet,并添加 background-size,让整张 sprite sheet 正确缩放。
我应该设置 FPS 还是总时长?
当你知道每秒应播放多少帧时用 FPS;工具会用帧数除以 FPS 把它换算成时长。当你希望整个循环无论帧数多少都耗时特定毫秒数时,用总时长。
如何让动画永远循环或只循环几次?
选择「Infinite」实现不停循环,它映射到 animation-iteration-count: infinite。选择「Count」并输入一个数字,让序列播放固定次数,并用方向选项实现 reverse 或 alternate 播放。
我的 sprite sheet 会被上传到任何地方吗?
不会。图片用你浏览器的 FileReader 在本地读取以构建预览,绝不会离开你的设备;生成的 CSS 完全在你的机器上计算。

相关工具

全部 ArrayKit 工具