123问免费工具与知识服务
123问工具大全› 工具大全› 设计工具› CSS动画生成器

✨ CSS动画生成器

预设动画 · @keyframes · 实时预览

Hello

CSS动画生成器常见问题

CSS animation参数有哪些?

animation简写:name duration timing-function delay iteration-count direction fill-mode。最常用的是name duration timing-function。

ease和ease-in-out有什么区别?

ease=慢→快→慢(默认),ease-in=慢→快,ease-out=快→慢,ease-in-out=慢→快→慢(比ease更平滑),linear=匀速。infinite代表无限循环。

如何让动画停留在结束状态?

使用animation-fill-mode: forwards。本工具生成的CSS自动包含此选项,确保动画播放结束后元素保持在最后一帧位置。

@keyframes里百分比的顺序有讲究吗?

百分比按时间轴分布,0%是开始帧、100%是结束帧。中间的50%等代表动画进行到一半的状态。系统会按数值从小到大排列执行。

animation和transition有什么区别?

transition需要触发条件(如hover),且只能从当前状态过渡到目标状态;animation自动播放,可定义多关键帧的复杂动画,还能循环和反向。

动画会卡顿怎么办?

优先只动画化transform和opacity,这两个属性走GPU合成,最流畅。尽量别动画化width、height、top、left等会触发重排的布局属性。

animation-direction是干嘛的?

控制播放方向:normal正向、reverse反向、alternate交替(正反交替)、alternate-reverse从反开始。做钟摆、呼吸灯等来回效果常用alternate。

多个动画能不能同时播放?

可以。animation: name1 1s, name2 2s; 用逗号分隔多个动画,即可让元素同时具备淡入和旋转等多种效果。

CSS动画生成器 - 示例演示

示例一:页面元素淡入

输入:预设fadeIn,时长1s,缓动ease-out,次数1次
结果:animation: fadeIn 1s ease-out 0s 1 both;
给首屏标题、卡片加淡入,打开页面时元素依次浮现,比全部静态出现更有质感和引导性。

示例二:呼吸灯效果

输入:预设pulse,时长2s,缓动ease-in-out,次数无限循环
结果:animation: pulse 2s ease-in-out 0s infinite both;
脉冲缩放无限循环,适合做"在线状态"绿点、加载提示、重点按钮的呼吸强调效果。

示例三:错误提示抖动

输入:预设shake,时长0.5s,缓动linear,次数1次
结果:animation: shake 0.5s linear 0s 1 both;
表单校验失败时触发shake,给用户明确的反错误反馈,比弹窗提示更轻量直观。

CSS动画生成器深度解读

animation 八个子属性全解读

animation是8个子属性的简写,掌握它们就能精细控制任何动画。

animation 子属性速查
子属性作用示例
animation-name指定@keyframes名称fadeIn
animation-duration单次播放时长1.5s
animation-timing-function缓动(速度曲线)ease-in-out
animation-delay延迟开始时间0.5s
animation-iteration-count播放次数infinite
animation-direction播放方向alternate
animation-fill-mode首/末帧填充both
animation-play-state暂停/运行paused

fill-mode是最容易忽略但最实用的:backwards让元素在延迟期就处于第一帧状态,forwards让动画结束后停在最后一帧,both两者兼顾。

缓动函数怎么选才自然

  • 淡入元素:ease-out,快开始慢结束,收尾平稳。
  • 淡出元素:ease-in,慢开始快结束,离场利落。
  • 来回钟摆:ease-in-out,两端都平滑。
  • 匀速进度条:linear,避免忽快忽慢。
  • 想更生动:用cubic-bezier自定义曲线,如cubic-bezier(0.68,-0.55,0.27,1.55)能做出轻微回弹。
缓动函数手感对比
函数速度变化视觉感受
linear全程匀速机械、生硬,适合进度条
ease-in慢→快离场掉落的加速感
ease-out快→慢入场缓停、自然利落
ease-in-out慢快慢平缓、专业
cubic-bezier(0.68,-0.55,0.27,1.55)先快后缓再回弹俏皮、有弹性的交互

缓动决定动画的"手感",同样的位移配不同缓动,观感差异巨大。

让动画流畅不掉帧

动画性能的关键是"动什么"。浏览器对 transform(位移/缩放/旋转) 和 opacity(透明度) 做了GPU加速,动画化它们几乎不卡顿。

  • 能用transform就用transform,别用top/left做位移。
  • 避免动画化width/height/box-shadow,它们会触发重排重绘。
  • 循环动画里尽量别触发布局,减少DOM读写。
  • 元素数量多时用animation-play-state配合滚动监听做按需播放。
可动画属性 vs 高成本属性
属性是否推荐动画原因
transform推荐GPU合成,不触发布局
opacity推荐只做透明合成
color/background可以触发重绘但不重排
top/left/width/margin避免触发重排,容易卡顿
box-shadow避免重绘成本高

动画的实际应用场景

常见动画场景与实现
场景动画类型建议时长
页面入场淡入+滑入0.3-0.6s
按钮反馈缩放/位移0.1-0.2s
加载状态旋转/呼吸1-2s循环
达成提示弹跳/放大0.5-0.8s
错误提示抖动0.3-0.5s

动画时长一般的黄金区间是0.1s-0.5s,太慢会让用户觉得拖沓,太快则看不清。

CSS动画生成器参考数据

缓动函数速查

函数特点用途
linear匀速进度条、旋转
ease慢快慢(默认)通用过渡
ease-in慢→快离场淡出
ease-out快→慢入场淡入
ease-in-out慢快慢更平滑钟摆、呼吸
cubic-bezier(n,n,n,n)自定义曲线回弹等特殊效果

预设动画关键帧说明

动画关键变化典型用途
fadeInopacity 0→1淡入
slideIntranslateY -30px→0滑入
bouncetranslateY 弹跳达成提示
rotaterotate 0→360deg旋转
pulsescale 1→1.1呼吸强调
shaketranslateX 抖动错误提示
fliprotateY 90→0deg翻转入场
zoomInscale 0.5→1 + 淡入放大入场

使用说明

使用方法

1. 选择动画预设。

2. 调整时长和延迟。

3. 选择缓动函数和次数。

4. 查看实时预览。

5. 复制@keyframes和animation CSS代码。

分享工具: Facebook Twitter 微博 复制链接