CSS 过渡动画生成器
样式所有处理都在浏览器本地完成,数据不上传服务器
挑属性、时长、缓动与延迟,把鼠标移到预览上看过程,然后复制走。 过渡必须有「两个状态」才看得见,所以工具在预览区加了一条 `:hover` 规则作为触发端 —— 只给静止的元素写 `transition` 是看不出任何东西的。这一点也解释了一个常见的困惑:`transition` 要写在元素本身,不能写在 `:hover` 里。写在 `:hover` 里的话,鼠标移入有动画、移出没有(因为移出时那条声明已经不生效了)。交付的代码里两条规则分开写,正是为了让这个分工一眼看清。 缓动为什么给这几条而不是让你填四个数字:`cubic-bezier(x1, y1, x2, y2)` 的四个控制点要拖动才配得准,那是贝塞尔曲线生成器的事。这里给的是最常用的几条,每条都写了性格(比如 `ease-out` 快进慢出、`back` 略微过冲),选起来有依据。 顺带一个实践建议:时长别超过 500ms。界面上的过渡是「解释刚才发生了什么」,不是表演 —— 超过半秒,用户就会开始等它。
功能
- 六种常用过渡属性:transform、opacity、背景色、阴影、模糊、all
- 时长 0–3000ms 可调,建议 150–400ms
- 六条缓动曲线,每条都标了性格与适用场景
- 延迟可调,用于做依次入场的错位效果
- 悬停预览区即可看到过渡过程,不需要点任何按钮
- 交付的代码里 `transition` 与 `:hover` 分两条规则写,分工清楚
- 下方给出可复制的完整 CSS,带 `.transition` 选择器
- 所有计算在浏览器本地完成
使用方法
- 选一个过渡属性(一般从 transform 或 opacity 开始)
- 调时长与缓动,把鼠标移到预览上看效果
- 需要错位入场就加一点延迟
- 满意后复制 CSS —— 注意 `transition` 在静止端、变化值在 `:hover` 端
常见问题
- 为什么 hover 有动画、移出时没有?
- 几乎肯定是把 `transition` 写进了 `:hover` 里。这样写的话,那条声明只在悬停时生效 —— 移出时它已经不在了,浏览器自然没有过渡可用,于是瞬间弹回。正确做法是把 `transition` 写在元素的基础规则上,`:hover` 里只写要变成什么。工具生成的代码就是这个结构,可以对照着看。
- `transition: all` 有什么问题?
- 两个。一是性能:`all` 会让浏览器盯着每一个可动画属性,包括那些你根本没打算动的(某些属性会触发重排或重绘),在复杂页面上会明显变慢。二是意外动画:某个属性被别处改了(比如响应式的宽度、主题切换的颜色)也会跟着过渡,出来的效果往往莫名其妙。所以优先明确列出属性,`all` 只在原型阶段图省事时用。
- 哪些属性做过渡是安全的(不掉帧)?
- `transform` 与 `opacity` 是公认安全的两类 —— 它们可以完全在 GPU 合成层完成,不触发重排也不触发重绘。而 `width`、`height`、`top`、`left`、`margin` 这类会触发重排,`box-shadow`、`background-color` 会触发重绘,量大了都会掉帧。所以「位移与缩放」优先用 `transform: translate/scale` 而不是改 `left/width` —— 这也是本工具把 transform 放在第一个选项的原因。
- 时长该取多少?
- 150–400ms 是界面过渡的舒适区:快到不觉得在等,慢到能看清变化。小于 100ms 会被当成瞬间完成(看不出是过渡),超过 500ms 用户就会开始等它。另外两个经验:元素越大、移动距离越远,时长可以略长(大物体的移动本来就该慢一点);而反复触发的交互(悬停、点击反馈)要取更短的一档,因为它们会被频繁看到。
相关工具
CSS 关键帧动画模板
样式七套预设关键帧动画(淡入、滑入、弹出、脉动、抖动、旋转、浮动),调时长与曲线后复制 CSS,并附减少动态效果的处理。
CSS 圆角生成器
样式调四个角的圆角值,实时预览并复制 CSS。支持 px、rem 与百分比 —— 百分比在非正方形盒子上是椭圆,预览区里一眼就能看出来。
CSS 渐变生成器
样式调角度、颜色与形状,实时预览渐变效果,一键复制 CSS。支持线性、径向与锥形三种渐变,可选中间色标。
毛玻璃效果生成器
样式调模糊、透明度、饱和度与边框,实时预览毛玻璃效果并复制 CSS。代码含 -webkit- 前缀,iOS 上也能真的出现模糊。
新拟态效果生成器
样式调距离、模糊、强度与凹凸方向,实时预览新拟态(柔和 UI)效果并复制 CSS。两个阴影色由底色算出,色相保持不变。
霓虹灯文字
样式调颜色与强度,实时预览霓虹灯文字效果并复制 CSS。多层 text-shadow 叠出光晕,预览区配深色底。