CSS 动画生成器
CSS 动画生成器是一个免费的在线工具,帮助你创建流畅、引人注目的 CSS 动画,无需手动编写关键帧。从预置的动画效果中选择,如淡入、滑动、弹跳、旋转、翻转、缩放等。使用直观控件自定义持续时间、延迟、时间函数、迭代次数、方向和填充模式。在实时预览元素上查看动画效果,然后复制生成的 CSS 代码(包括 @keyframes 和所有浏览器前缀)。非常适合想要为网站添加动画效果但不想深入了解 CSS 动画知识的开发者和设计师。
功能介绍
CSS 动画允许你通过纯 CSS 在网页元素上创建平滑的过渡和复杂的动画效果——不需要 JavaScript(对于基础动画而言)。CSS CSS 动画系统基于两个核心概念:过渡(简单的状态到状态变化)和关键帧(多步动画序列)。 CSS animation 属性简写包括: - animation-name:@keyframes 规则的名称 - animation-duration:一个循环需要多长时间(如 1s、500ms) - animation-delay:动画开始前的等待时间 - animation-timing-function:速度曲线(ease、linear、ease-in、ease-out、ease-in-out、cubic-bezier) - animation-iteration-count:重复次数(数字或 infinite) - animation-direction:normal、reverse、alternate、alternate-reverse - animation-fill-mode:之前/之后应用的样式(none、forwards、backwards、both) - animation-play-state:running 或 paused @keyframes 规则定义动画阶段: @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } 预置动画类别包括: - 淡入动画:fadeIn、fadeInUp、fadeInDown、fadeInLeft、fadeInRight、fadeOut - 滑动动画:slideInUp、slideInDown、slideInLeft、slideInRight - 弹跳动画:bounceIn、bounceInUp、bounceInDown、bounceOut - 旋转动画:rotateIn、rotateInUpLeft、rotateInUpRight、rotateOut - 缩放动画:zoomIn、zoomInUp、zoomInDown、zoomOut - 特殊动画:hinge、rollIn、rollOut、flash、pulse、shake、swing、tada 时间函数说明: - ease:慢开始、快中间、慢结束(默认) - linear:恒定速度 - ease-in:慢开始,加速 - ease-out:快开始,减速 - ease-in-out:慢开始和结束,快中间 - cubic-bezier(x1,y1,x2,y2):自定义时间曲线 生成器输出干净的跨浏览器 CSS,带有所有必要的浏览器前缀(-webkit-、-moz-、-o-)和旧版浏览器的回退方案。
使用方法
- 从效果库中选择一个动画效果。浏览 Fade、Slide、Bounce、Rotate、Zoom 和 Special 效果等类别。点击任何动画缩略图在演示元素上预览。
- 使用滑块或输入字段调整动画持续时间。典型值范围从 200ms(快速反馈)到 2-3 秒(戏剧性效果)。对于 UI 交互,较短持续时间感觉更敏捷。
- 如果你想让动画延迟一段时间再开始,设置延迟。对多动画排序很有用(如 500ms 后淡入标题,然后 800ms 后滑入内容)。
- 从下拉菜单选择时间函数。入场动画尝试 'ease-out'(快速到达,柔和停止),退出动画使用 'ease-in'。连续旋转使用 'linear'。使用曲线编辑器创建自定义 cubic-bezier 曲线。
- 配置迭代次数(动画播放多少次)和方向(normal、alternate 来回效果)。为加载旋转等连续动画设置 'infinite'。
- 点击 'Play' 按钮实时预览动画。演示元素运行你配置的动画。点击 'Pause' 在当前状态冻结或 'Replay' 重新播放。
- 从输出面板复制生成的 CSS 代码。代码包括 @keyframes 定义、animation 简写和单独的展开属性。粘贴到样式表或使用内联样式。
计算示例
输入: 类型: 淡入, 时长: 1s, 缓动: ease-in-out
过程: 关键帧 0%:opacity=0, 100%:opacity=1 → CSS输出
结果: @keyframes fadeIn { 0%{opacity:0} 100%{opacity=1} }
输入: 类型: 从左滑入, 时长: 500ms
过程: translateX(-100%)到translateX(0)
结果: @keyframes slideLeft { 0%{transform:translateX(-100%)} 100%{transform:translateX(0)} }
相关搜索
相关搜索:css 动画生成器, css 关键帧, css 动画, 动画生成器。
css 动画生成器css 关键帧css 动画动画生成器
常见问题
CSS 动画和 CSS 过渡有什么区别?
CSS 过渡在两个状态之间动画(如悬停状态变化),需要 :hover 或类变化等触发器。CSS 动画使用 @keyframes 定义多个中间状态并可以在页面加载时自动运行、无限循环或反向播放。对简单的悬停/点击效果使用过渡,对复杂的、多步的或自动播放的运动使用动画。两者可以组合使用:悬停状态用过渡,入场效果用动画。
如何在页面加载时触发动画?
只需将 animation 属性添加到元素的 CSS 中。它将在元素渲染时自动播放:.my-element { animation: fadeIn 1s ease-out; }。如果你想让动画最初暂停并通过 JavaScript 触发,设置 animation-play-state: paused 默认,然后在需要时切换到 running(如滚动到视图时、用户交互时或定时器触发时)。
可以在一个元素上组合多个动画吗?
可以。使用逗号分隔列表应用多个动画:animation: fadeIn 1s, slideInUp 1s;。每个动画可以有自己的持续时间、延迟和时间函数。这允许复杂的组合效果,如同时淡入和向上滑动。注意性能——太多同时动画可能在移动设备上引起卡顿。
为什么我的动画不流畅?看起来很卡。
要实现流畅的 60fps 动画,只对 GPU 加速的属性进行动画处理:transform(translate、scale、rotate、skew)和 opacity。避免对 width、height、top、left、margin 或 padding 进行动画处理——这些会触发布局重排(reflow),性能开销大。如果出现卡顿,为动画元素添加 will-change: transform; 提示浏览器优化。同时减少屏幕上同时动画的元素数量。
CSS 动画是无障碍的吗?
一些用户对运动敏感,偏好减少动画。请通过检查 prefers-reduced-motion 媒体查询来尊重这一点:@media (prefers-reduced-motion: reduce) { * { animation: none !important; } }。前庭障碍用户可能会对视差效果、缩放或旋转动画感到不适。始终提供禁用或最小化动画的方法,避免在没有用户控制的情况下自动播放长动画。