Motion.Lab 动效库 — 160 个精选前端动效(基础/文字/交互/高级),每个动效提供可直接复制的 HTML/CSS/JS 源码与可调参数。当用户需要为网页、组件、落地页添加动画效果,或询问"有什么动效推荐"时使用。
Motion.Lab 动效库是一项面向实际任务的技能,主要用于Motion.Lab 是一个包含 160 个精选前端动效 的中文参考库,覆盖基础、文字、交互、高级四大类;每个动效均提供可直接复制的 HTML/CSS/JS 源码,并支持参数调节;
它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
Motion.Lab 是一个包含 160 个精选前端动效的中文参考库,覆盖基础、文字、交互、高级四大类。每个动效均提供可直接复制的 HTML/CSS/JS 源码,并支持参数调节。
当用户出现以下意图时调用本 Skill:
id(可按关键词、分类、难度筛选)id 的代码块复制 HTML/CSS/JS;或访问 https://motionlab.uanx.online/lab/ 查看实时预览 或模块;参数通过 style="--key: value" 或 JS 变量传入| ID | 名称 | 英文名 | 难度 | 说明 |
|---|---|---|---|---|
fade-in |
淡入 | Fade In | ★☆☆ | 元素从透明渐入到不透明,最基础的进入动画。 |
fade-in-up |
上滑淡入 | Fade In Up | ★☆☆ | 元素从下方淡入,常用于列表项。 |
slide-in-left |
左侧滑入 | Slide In Left | ★☆☆ | 元素从左侧滑入视口。 |
slide-in-right |
右侧滑入 | Slide In Right | ★☆☆ | 元素从右侧滑入视口。 |
zoom-bounce |
缩放弹跳 | Zoom Bounce | ★☆☆ | 元素放大入场,带弹跳回弹。 |
flip-x |
水平翻转 | Flip X | ★★☆ | 元素绕 X 轴翻转入场。 |
rotate-in |
旋转入场 | Rotate In | ★☆☆ | 元素从旋转状态回归原位。 |
pulse |
脉冲 | Pulse | ★☆☆ | 元素持续放大缩小,吸引注意。 |
shake |
摇晃 | Shake | ★☆☆ | 元素左右快速摇晃,常用于表单错误提示。 |
heartbeat |
心跳 | Heartbeat | ★☆☆ | 双拍心跳节奏,模拟真实心跳。 |
marquee |
跑马灯 | Marquee | ★★☆ | 内容从右向左无限滚动。 |
spinner |
加载旋转 | Spinner | ★☆☆ | 经典加载指示器。 |
slide-up |
上滑入场 | Slide Up | ★☆☆ | 元素从下往上滑入并淡入,通用入场动画。 |
slide-down |
下滑入场 | Slide Down | ★☆☆ | 元素从上往下滑入,适合顶部 banner。 |
bounce-in |
弹跳入场 | Bounce In | ★★☆ | 元素入场时多次反弹,有节奏感。 |
elastic-in |
弹性入场 | Elastic In | ★★☆ | 入场时带有明显弹性回弹,生动有趣。 |
fade-out |
淡出消失 | Fade Out | ★☆☆ | 元素持续淡出后回弹,适合循环演示。 |
scale-pulse |
缩放呼吸 | Scale Pulse | ★☆☆ | 元素持续缩放形成呼吸效果,比 pulse 更夸张。 |
rotate-360 |
持续旋转 | Rotate 360 | ★☆☆ | 元素持续 360 度旋转,无限循环。 |
swing |
钟摆 | Swing | ★★☆ | 顶部固定,左右摆动,像钟摆一样。 |
jello |
果冻 | Jello | ★★☆ | 元素呈现果冻般的扭曲抖动,俏皮可爱。 |
flash |
闪烁 | Flash | ★☆☆ | 元素透明度快速闪烁,适合新消息/警告提示。 |
fade-in-down |
上方淡入 | Fade In Down | ★☆☆ | 元素从上方淡入下滑,通用入场动画。 |
fade-in-left |
左侧淡入 | Fade In Left | ★☆☆ | 元素从左侧淡入滑入,适合横向布局。 |
fade-in-right |
右侧淡入 | Fade In Right | ★☆☆ | 元素从右侧淡入滑入,横向入场。 |
scale-in |
缩放入场 | Scale In | ★☆☆ | 元素从较小尺寸缩放到原始大小入场。 |
scale-out |
缩小归位 | Scale Out | ★☆☆ | 元素从较大尺寸缩小归位,有收束感。 |
flip-y |
垂直翻转 | Flip Y | ★★☆ | 元素绕 Y 轴翻转入场,类似翻牌。 |
flip-in-3d |
3D 翻转 | Flip In 3D | ★★☆ | 元素以 3D 透视翻转加缩放入场,立体感强。 |
wobble |
摇摆 | Wobble | ★★☆ | 元素左右摇摆晃动,俏皮可爱。 |
tada |
庆祝抖动 | Tada | ★★☆ | 元素放大并轻微旋转抖动,庆祝感强。 |
bounce-down |
向下弹跳 | Bounce Down | ★★☆ | 元素从上方弹跳落下,带多次反弹。 |
slide-fade-corner |
角落滑入 | Corner Slide | ★★☆ | 元素从左上角斜向滑入,带淡入。 |
skew-in |
倾斜入场 | Skew In | ★★☆ | 元素以倾斜状态滑入归位,动感十足。 |
blur-in |
模糊入场 | Blur In | ★★☆ | 元素从模糊状态渐变到清晰,柔和入场。 |
blur-out |
模糊呼吸 | Blur Pulse | ★★☆ | 元素在清晰与模糊间循环呼吸,梦幻感。 |
grayscale-in |
灰度入场 | Grayscale In | ★★☆ | 元素从灰度渐变到彩色,复古转彩色。 |
color-cycle |
色彩循环 | Color Cycle | ★☆☆ | 元素背景色按 HSL 循环变化,霓虹感。 |
border-draw |
边框画出 | Border Draw | ★★☆ | 边框按顺时针逐步画出,勾勒轮廓。 |
shadow-grow |
阴影生长 | Shadow Grow | ★☆☆ | 元素阴影循环生长,产生悬浮呼吸感。 |
gradient-shift |
渐变流动 | Gradient Shift | ★☆☆ | 渐变背景持续流动,色彩柔和过渡。 |
typewriter-cursor |
光标打字 | Typing Cursor | ★★☆ | 带闪烁光标的打字效果,逐字输入循环。 |
fade-in — 淡入(Fade In)元素从透明渐入到不透明,最基础的进入动画。
参数:
duration (时长): 范围 0.2–3(步长 0.1)s,默认 0.8delay (延迟): 范围 0–2(步长 0.1)s,默认 0HTML:
Hello
CSS:
.fade-in { animation: fadeIn var(--duration, 0.8s) ease-out var(--delay, 0s) both; }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
JS:
// Pure CSS — no JS needed
在线预览
fade-in-up — 上滑淡入(Fade In Up)元素从下方淡入,常用于列表项。
参数:
duration (时长): 范围 0.2–3(步长 0.1)s,默认 0.8distance (距离): 范围 10–80(步长 5)px,默认 20HTML:
Hello
CSS:
.fade-in-up { animation: fadeInUp var(--duration, 0.8s) ease-out both; }
@keyframes fadeInUp { from { opacity: 0; transform: translateY(var(--distance, 20px)); } to { opacity: 1; transform: translateY(0); } }
JS:
// Pure CSS
在线预览
slide-in-left — 左侧滑入(Slide In Left)元素从左侧滑入视口。
参数:
duration (时长): 范围 0.2–2(步长 0.1)s,默认 0.6HTML:
CSS:
.slide-left { animation: slideLeft var(--duration, 0.6s) ease-out both; }
@keyframes slideLeft { from { transform: translateX(-100%); } to { transform: translateX(0); } }
JS:
// Pure CSS — no JS needed
在线预览
slide-in-right — 右侧滑入(Slide In Right)元素从右侧滑入视口。
参数:
duration (时长): 范围 0.2–2(步长 0.1)s,默认 0.6HTML:
CSS:
.slide-right { animation: slideRight var(--duration, 0.6s) ease-out both; }
@keyframes slideRight { from { transform: translateX(100%); } to { transform: translateX(0); } }
JS:
// Pure CSS — no JS needed
在线预览
zoom-bounce — 缩放弹跳(Zoom Bounce)元素放大入场,带弹跳回弹。
参数:
duration (时长): 范围 0.3–2(步长 0.1)s,默认 0.8HTML:
●
CSS:
.zoom-bounce { animation: zoomBounce var(--duration, 0.8s) cubic-bezier(0.34, 1.56, 0.64, 1) both; }
@keyframes zoomBounce { from { transform: scale(0); } to { transform: scale(1); } }
JS:
// Pure CSS — no JS needed
在线预览
flip-x — 水平翻转(Flip X)元素绕 X 轴翻转入场。
参数:
duration (时长): 范围 0.3–2(步长 0.1)s,默认 0.8HTML:
↻
CSS:
.flip-x { animation: flipX var(--duration, 0.8s) ease-out both; transform-origin: center; }
@keyframes flipX { from { transform: perspective(600px) rotateX(-90deg); opacity: 0; } to { transform: perspective(600px) rotateX(0); opacity: 1; } }
JS:
// Pure CSS — no JS needed
在线预览
rotate-in — 旋转入场(Rotate In)元素从旋转状态回归原位。
参数:
duration (时长): 范围 0.3–2(步长 0.1)s,默认 0.7HTML:
★
CSS:
.rotate-in { animation: rotateIn var(--duration, 0.7s) ease-out both; }
@keyframes rotateIn { from { transform: rotate(-180deg) scale(0.3); opacity: 0; } to { transform: rotate(0) scale(1); opacity: 1; } }
JS:
// Pure CSS — no JS needed
在线预览
pulse — 脉冲(Pulse)元素持续放大缩小,吸引注意。
参数:
duration (周期): 范围 0.5–3(步长 0.1)s,默认 1.5intensity (强度): 范围 0.05–0.4(步长 0.05),默认 0.15HTML:
●
CSS:
.pulse { animation: pulse var(--duration, 1.5s) ease-in-out infinite; }
@keyframes pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(calc(1 + var(--intensity, 0.15))); } }
JS:
// Pure CSS — no JS needed
在线预览
shake — 摇晃(Shake)元素左右快速摇晃,常用于表单错误提示。
参数:
duration (时长): 范围 0.2–1.5(步长 0.1)s,默认 0.5HTML:
!
CSS:
.shake { animation: shake var(--duration, 0.5s); }
@keyframes shake { 0%, 100% { transform: translateX(0); } 25% { transform: translateX(-8px); } 75% { transform: translateX(8px); } }
JS:
// Pure CSS — no JS needed
在线预览
heartbeat — 心跳(Heartbeat)双拍心跳节奏,模拟真实心跳。
参数:
duration (周期): 范围 0.5–3(步长 0.1)s,默认 1.2HTML:
♥
CSS:
.heartbeat { animation: heartbeat var(--duration, 1.2s) ease-in-out infinite; }
@keyframes heartbeat { 0%, 100% { transform: scale(1); } 14% { transform: scale(1.3); } 28% { transform: scale(1); } 42% { transform: scale(1.3); } 70% { transform: scale(1); } }
JS:
// Pure CSS — no JS needed
在线预览
marquee — 跑马灯(Marquee)内容从右向左无限滚动。
参数:
duration (周期): 范围 5–30(步长 1)s,默认 12direction (方向): 选项 ["left","right"],默认 leftHTML:
Motion.Lab · 动效实验室 · Motion.Lab · 动效实验室 ·
CSS:
.marquee { display: flex; gap: 32px; animation: marquee var(--duration, 12s) linear infinite; white-space: nowrap; }
@keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
JS:
// Pure CSS — no JS needed
在线预览
spinner — 加载旋转(Spinner)经典加载指示器。
参数:
duration (周期): 范围 0.3–2(步长 0.1)s,默认 0.8HTML:
CSS:
.spinner { width: 32px; height: 32px; border: 3px solid rgba(0,0,0,0.1); border-top-color: var(--accent); border-radius: 50%; animation: spin var(--duration, 0.8s) linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
JS:
// Pure CSS — no JS needed
在线预览
slide-up — 上滑入场(Slide Up)元素从下往上滑入并淡入,通用入场动画。
参数:
duration (时长): 范围 0.2–2(步长 0.1)s,默认 0.6distance (距离): 范围 20–120(步长 5)px,默认 40HTML:
CSS:
.slide-up { animation: slideUp var(--duration, 0.6s) ease-out both; }
@keyframes slideUp { from { opacity: 0; transform: translateY(var(--distance, 40px)); } to { opacity: 1; transform: translateY(0); } }
JS:
// Pure CSS — no JS needed
在线预览
slide-down — 下滑入场(Slide Down)元素从上往下滑入,适合顶部 banner。
参数:
duration (时长): 范围 0.2–2(步长 0.1)s,默认 0.6distance (距离): 范围 20–120(步长 5)px,默认 40HTML:
CSS:
.slide-down { animation: slideDown var(--duration, 0.6s) ease-out both; }
@keyframes slideDown { from { opacity: 0; transform: translateY(calc(var(--distance, 40px) * -1)); } to { opacity: 1; transform: translateY(0); } }
JS:
// Pure CSS — no JS needed
在线预览
bounce-in — 弹跳入场(Bounce In)元素入场时多次反弹,有节奏感。
参数:
duration (时长): 范围 0.5–2(步长 0.1)s,默认 1HTML:
Bounce
CSS:
.bounce-in { animation: bounceIn var(--duration, 1s) both; }
@keyframes bounceIn { 0% { transform: scale(0.3); opacity: 0; } 50% { transform: scale(1.1); opacity: 1; } 70% { transform: scale(0.9); } 85% { transform: scale(1.05); } 100% { transform: scale(1); } }
JS:
// Pure CSS — no JS needed
在线预览
elastic-in — 弹性入场(Elastic In)入场时带有明显弹性回弹,生动有趣。
参数:
duration (时长): 范围 0.5–2.5(步长 0.1)s,默认 1.2HTML:
Elastic
CSS:
.elastic-in { animation: elasticIn var(--duration, 1.2s) cubic-bezier(0.68, -0.55, 0.265, 1.55) both; }
@keyframes elasticIn { 0% { transform: scale(0) rotate(-180deg); opacity: 0; } 100% { transform: scale(1) rotate(0); opacity: 1; } }
JS:
// Pure CSS — no JS needed
在线预览
fade-out — 淡出消失(Fade Out)元素持续淡出后回弹,适合循环演示。
参数:
duration (周期): 范围 1–5(步长 0.1)s,默认 2HTML:
Fade Out
CSS:
.fade-out { animation: fadeOut var(--duration, 2s) ease-in-out infinite alternate; }
@keyframes fadeOut { from { opacity: 1; } to { opacity: 0; } }
JS:
// Pure CSS — no JS needed
在线预览
scale-pulse — 缩放呼吸(Scale Pulse)元素持续缩放形成呼吸效果,比 pulse 更夸张。
参数:
duration (周期): 范围 0.6–3(步长 0.1)s,默认 1.4min (最小): 范围 0.4–0.95(步长 0.05),默认 0.7max (最大): 范围 1.05–1.6(步长 0.05),默认 1.15HTML:
●
CSS:
.scale-pulse { animation: sp var(--duration, 1.4s) ease-in-out infinite; }
@keyframes sp { 0%, 100% { transform: scale(var(--min, 0.7)); } 50% { transform: scale(var(--max, 1.15)); } }
JS:
// Pure CSS — no JS needed
在线预览
rotate-360 — 持续旋转(Rotate 360)元素持续 360 度旋转,无限循环。
参数:
duration (周期): 范围 0.5–6(步长 0.1)s,默认 2HTML:
⟳
CSS:
.rotate-360 { display: inline-block; animation: rot360 var(--duration, 2s) linear infinite; }
@keyframes rot360 { to { transform: rotate(360deg); } }
JS:
// Pure CSS — no JS needed
在线预览
swing — 钟摆(Swing)顶部固定,左右摆动,像钟摆一样。
参数:
duration (周期): 范围 0.8–3(步长 0.1)s,默认 1.6HTML:
⏰
CSS:
.swing { display: inline-block; transform-origin: top center; animation: swing var(--duration, 1.6s) ease-in-out infinite; }
@keyframes swing { 0%, 100% { transform: rotate(15deg); } 50% { transform: rotate(-15deg); } }
JS:
// Pure CSS — no JS needed
在线预览
jello — 果冻(Jello)元素呈现果冻般的扭曲抖动,俏皮可爱。
参数:
duration (时长): 范围 0.6–1.5(步长 0.1)s,默认 0.9HTML:
JELLO
CSS:
.jello { display: inline-block; animation: jello var(--duration, 0.9s) ease-in-out infinite; transform-origin: center; }
@keyframes jello { 0%, 100% { transform: scale3d(1, 1, 1); } 30% { transform: scale3d(1.25, 0.75, 1); } 40% { transform: scale3d(0.75, 1.25, 1); } 50% { transform: scale3d(1.15, 0.85, 1); } 65% { transform: scale3d(0.95, 1.05, 1); } 75% { transform: scale3d(1.05, 0.95, 1); } }
JS:
// Pure CSS — no JS needed
在线预览
flash — 闪烁(Flash)元素透明度快速闪烁,适合新消息/警告提示。
参数:
duration (周期): 范围 0.4–2(步长 0.1)s,默认 0.8color (颜色): 选项 ["red","yellow","blue","green"],默认 redHTML:
NOTICE
CSS:
.flash { animation: flash var(--duration, 0.8s) ease-in-out infinite; padding: 12px 20px; background: hsl(0 90% 55%); color: white; border-radius: 8px; font-weight: 700; }
@keyframes flash { 0%, 100% { opacity: 1; } 50% { opacity: 0.2; } }
JS:
// Pure CSS — no JS needed
在线预览
fade-in-down — 上方淡入(Fade In Down)元素从上方淡入下滑,通用入场动画。
参数:
duration (时长): 范围 0.2–3(步长 0.1)s,默认 0.8distance (距离): 范围 10–80(步长 5)px,默认 20HTML:
Hello
CSS:
.fade-in-down { animation: fadeInDown var(--duration, 0.8s) ease-out both; }
@keyframes fadeInDown { from { opacity: 0; transform: translateY(calc(var(--distance, 20px) * -1)); } to { opacity: 1; transform: translateY(0); } }
JS:
// Pure CSS — no JS needed
在线预览
fade-in-left — 左侧淡入(Fade In Left)元素从左侧淡入滑入,适合横向布局。
参数:
duration (时长): 范围 0.2–3(步长 0.1)s,默认 0.8distance (距离): 范围 10–80(步长 5)px,默认 24HTML:
Hello
CSS:
.fade-in-left { animation: fadeInLeft var(--duration, 0.8s) ease-out both; }
@keyframes fadeInLeft { from { opacity: 0; transform: translateX(calc(var(--distance, 24px) * -1)); } to { opacity: 1; transform: translateX(0); } }
JS:
// Pure CSS — no JS needed
在线预览
fade-in-right — 右侧淡入(Fade In Right)元素从右侧淡入滑入,横向入场。
参数:
duration (时长): 范围 0.2–3(步长 0.1)s,默认 0.8distance (距离): 范围 10–80(步长 5)px,默认 24HTML:
Hello
CSS:
.fade-in-right { animation: fadeInRight var(--duration, 0.8s) ease-out both; }
@keyframes fadeInRight { from { opacity: 0; transform: translateX(var(--distance, 24px)); } to { opacity: 1; transform: translateX(0); } }
JS:
// Pure CSS — no JS needed
在线预览
scale-in — 缩放入场(Scale In)元素从较小尺寸缩放到原始大小入场。
参数:
duration (时长): 范围 0.2–2(步长 0.1)s,默认 0.6from (起始缩放): 范围 0.1–0.9(步长 0.05),默认 0.5HTML:
Scale
CSS:
.scale-in { animation: scaleIn var(--duration, 0.6s) cubic-bezier(0.34, 1.56, 0.64, 1) both; }
@keyframes scaleIn { from { opacity: 0; transform: scale(var(--from, 0.5)); } to { opacity: 1; transform: scale(1); } }
JS:
// Pure CSS — no JS needed
在线预览
scale-out — 缩小归位(Scale Out)元素从较大尺寸缩小归位,有收束感。
参数:
duration (时长): 范围 0.2–2(步长 0.1)s,默认 0.6from (起始缩放): 范围 1.05–2(步长 0.05),默认 1.2HTML:
Scale
CSS:
.scale-out { animation: scaleOut var(--duration, 0.6s) cubic-bezier(0.34, 1.56, 0.64, 1) both; }
@keyframes scaleOut { from { opacity: 0; transform: scale(var(--from, 1.2)); } to { opacity: 1; transform: scale(1); } }
JS:
// Pure CSS — no JS needed
在线预览
flip-y — 垂直翻转(Flip Y)元素绕 Y 轴翻转入场,类似翻牌。
参数:
duration (时长): 范围 0.3–2(步长 0.1)s,默认 0.8HTML:
↻
CSS:
.flip-y { animation: flipY var(--duration, 0.8s) ease-out both; transform-origin: center; }
@keyframes flipY { from { transform: perspective(600px) rotateY(-90deg); opacity: 0; } to { transform: perspective(600px) rotateY(0); opacity: 1; } }
JS:
// Pure CSS — no JS needed
在线预览
flip-in-3d — 3D 翻转(Flip In 3D)元素以 3D 透视翻转加缩放入场,立体感强。
参数:
duration (时长): 范围 0.4–2(步长 0.1)s,默认 0.9HTML:
3D
CSS:
.flip-in-3d { animation: flipIn3d var(--duration, 0.9s) ease-out both; transform-origin: center; }
@keyframes flipIn3d { from { transform: perspective(800px) rotateX(-90deg) rotateY(-30deg) scale(0.6); opacity: 0; } to { transform: perspective(800px) rotateX(0) rotateY(0) scale(1); opacity: 1; } }
JS:
// Pure CSS — no JS needed
在线预览
wobble — 摇摆(Wobble)元素左右摇摆晃动,俏皮可爱。
参数:
duration (时长): 范围 0.6–2(步长 0.1)s,默认 1HTML:
Wobble
CSS:
.wobble { display: inline-block; animation: wobble var(--duration, 1s) ease-in-out infinite; transform-origin: center; }
@keyframes wobble { 0%, 100% { transform: translateX(0) rotate(0); } 15% { transform: translateX(-12%) rotate(-5deg); } 30% { transform: translateX(10%) rotate(3deg); } 45% { transform: translateX(-8%) rotate(-3deg); } 60% { transform: translateX(6%) rotate(2deg); } 75% { transform: translateX(-3%) rotate(-1deg); } }
JS:
// Pure CSS — no JS needed
在线预览
tada — 庆祝抖动(Tada)元素放大并轻微旋转抖动,庆祝感强。
参数:
duration (时长): 范围 0.6–2(步长 0.1)s,默认 1HTML:
Tada!
CSS:
.tada { display: inline-block; animation: tada var(--duration, 1s) ease-in-out infinite; transform-origin: center; }
@keyframes tada { 0%, 100% { transform: scale(1) rotate(0); } 10%, 20% { transform: scale(0.9) rotate(-3deg); } 30%, 50%, 70%, 90% { transform: scale(1.15) rotate(3deg); } 40%, 60%, 80% { transform: scale(1.15) rotate(-3deg); } }
JS:
// Pure CSS — no JS needed
在线预览
bounce-down — 向下弹跳(Bounce Down)元素从上方弹跳落下,带多次反弹。
参数:
duration (时长): 范围 0.6–2(步长 0.1)s,默认 1distance (距离): 范围 20–120(步长 5)px,默认 60HTML:
Bounce
CSS:
.bounce-down { animation: bounceDown var(--duration, 1s) cubic-bezier(0.34, 1.56, 0.64, 1) both; }
@keyframes bounceDown { 0% { transform: translateY(calc(var(--distance, 60px) * -1)); opacity: 0; } 60% { transform: translateY(8px); opacity: 1; } 80% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
JS:
// Pure CSS — no JS needed
在线预览
slide-fade-corner — 角落滑入(Corner Slide)元素从左上角斜向滑入,带淡入。
参数:
duration (时长): 范围 0.3–2(步长 0.1)s,默认 0.8HTML:
CSS:
.corner-slide { animation: cornerSlide var(--duration, 0.8s) cubic-bezier(0.34, 1.56, 0.64, 1) both; }
@keyframes cornerSlide { from { opacity: 0; transform: translate(-40px, -40px) scale(0.8); } to { opacity: 1; transform: translate(0, 0) scale(1); } }
JS:
// Pure CSS — no JS needed
在线预览
skew-in — 倾斜入场(Skew In)元素以倾斜状态滑入归位,动感十足。
参数:
duration (时长): 范围 0.3–2(步长 0.1)s,默认 0.7angle (角度): 范围 5–30(步长 1)°,默认 15HTML:
Skew
CSS:
.skew-in { animation: skewIn var(--duration, 0.7s) ease-out both; }
@keyframes skewIn { from { opacity: 0; transform: skewX(calc(var(--angle, 15deg) * -1)) translateX(-30px); } to { opacity: 1; transform: skewX(0) translateX(0); } }
JS:
// Pure CSS — no JS needed
在线预览
blur-in — 模糊入场(Blur In)元素从模糊状态渐变到清晰,柔和入场。
参数:
duration (时长): 范围 0.3–2(步长 0.1)s,默认 0.8blur (模糊): 范围 4–30(步长 1)px,默认 14HTML:
Blur
CSS:
.blur-in { animation: blurIn var(--duration, 0.8s) ease-out both; }
@keyframes blurIn { from { opacity: 0; filter: blur(var(--blur, 14px)); transform: scale(1.05); } to { opacity: 1; filter: blur(0); transform: scale(1); } }
JS:
// Pure CSS — no JS needed
在线预览
blur-out — 模糊呼吸(Blur Pulse)元素在清晰与模糊间循环呼吸,梦幻感。
参数:
duration (周期): 范围 1–5(步长 0.1)s,默认 2.4blur (模糊): 范围 2–16(步长 1)px,默认 8HTML:
Pulse
CSS:
.blur-out { animation: blurOut var(--duration, 2.4s) ease-in-out infinite; }
@keyframes blurOut { 0%, 100% { filter: blur(0); opacity: 1; } 50% { filter: blur(var(--blur, 8px)); opacity: 0.6; } }
JS:
// Pure CSS — no JS needed
在线预览
grayscale-in — 灰度入场(Grayscale In)元素从灰度渐变到彩色,复古转彩色。
参数:
duration (时长): 范围 0.5–3(步长 0.1)s,默认 1.2HTML:
Color
CSS:
.grayscale-in { animation: grayscaleIn var(--duration, 1.2s) ease-out both; }
@keyframes grayscaleIn { from { filter: grayscale(1) brightness(1.2); opacity: 0.4; } to { filter: grayscale(0) brightness(1); opacity: 1; } }
JS:
// Pure CSS — no JS needed
在线预览
color-cycle — 色彩循环(Color Cycle)元素背景色按 HSL 循环变化,霓虹感。
参数:
duration (周期): 范围 1–8(步长 0.2)s,默认 3HTML:
Cycle
CSS:
.color-cycle { animation: colorCycle var(--duration, 3s) linear infinite; }
@keyframes colorCycle { 0% { background: hsl(0 90% 60%); } 25% { background: hsl(90 90% 55%); } 50% { background: hsl(180 90% 55%); } 75% { background: hsl(270 90% 60%); } 100% { background: hsl(360 90% 60%); } }
JS:
// Pure CSS — no JS needed
在线预览
border-draw — 边框画出(Border Draw)边框按顺时针逐步画出,勾勒轮廓。
参数:
duration (时长): 范围 0.6–3(步长 0.1)s,默认 1.4HTML:
Draw
CSS:
.border-draw { position: relative; padding: 24px 32px; }
.border-draw::before { content: ""; position: absolute; inset: 0; padding: 2px; border-radius: 12px; background: linear-gradient(90deg, hsl(280 90% 60%), hsl(200 90% 60%)); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; background-size: 300% 300%; animation: borderDraw var(--duration, 1.4s) ease-in-out infinite alternate; }
@keyframes borderDraw { to { background-position: 100% 100%; } }
JS:
// Pure CSS — no JS needed
在线预览
shadow-grow — 阴影生长(Shadow Grow)元素阴影循环生长,产生悬浮呼吸感。
参数:
duration (周期): 范围 1–4(步长 0.1)s,默认 2HTML:
Float
CSS:
.shadow-grow { animation: shadowGrow var(--duration, 2s) ease-in-out infinite; }
@keyframes shadowGrow { 0%, 100% { box-shadow: 0 4px 10px rgba(0,0,0,0.1); transform: translateY(0); } 50% { box-shadow: 0 24px 40px rgba(0,0,0,0.25); transform: translateY(-6px); } }
JS:
// Pure CSS — no JS needed
在线预览
gradient-shift — 渐变流动(Gradient Shift)渐变背景持续流动,色彩柔和过渡。
参数:
duration (周期): 范围 2–10(步长 0.5)s,默认 5HTML:
Flow
CSS:
.gradient-shift { background: linear-gradient(120deg, hsl(280 90% 60%), hsl(200 90% 60%), hsl(320 90% 60%), hsl(280 90% 60%)); background-size: 300% 300%; animation: gradientShift var(--duration, 5s) ease infinite; }
@keyframes gradientShift { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } }
JS:
// Pure CSS — no JS needed
在线预览
typewriter-cursor — 光标打字(Typing Cursor)带闪烁光标的打字效果,逐字输入循环。
参数:
speed (速度): 范围 30–250(步长 10)ms,默认 90HTML:
CSS:
#tw-cursor { font-family: monospace; font-weight: 800; }
#tw-cursor::after { content: "▌"; margin-left: 2px; animation: blink 0.8s step-end infinite; }
@keyframes blink { 50% { opacity: 0; } }
JS:
const el = document.getElementById('tw-cursor');
const text = 'Typing...';
let i = 0;
setInterval(() => { el.textContent = text.slice(0, i++ % (text.length + 1)); }, 90);
在线预览
| ID | 名称 | 英文名 | 难度 | 说明 |
|---|---|---|---|---|
typewriter |
打字机 | Typewriter | ★☆☆ | 字符逐个出现,模拟键盘输入。 |
wave-text |
波浪文字 | Wave Text | ★★☆ | 每个字符上下波动形成波浪。 |
mask-reveal |
遮罩揭示 | Mask Reveal | ★★☆ | 文字从遮罩下方揭示,常用于 hero 标题。 |
split-char |
字符分裂 | Split Character | ★★☆ | 每个字符从上下分开再合拢。 |
gradient-text |
渐变文字 | Gradient Text | ★☆☆ | 文字使用 HSL 渐变背景 + 循环动画。 |
glitch-text |
故障文字 | Glitch Text | ★★★ | RGB 分离故障效果,赛博朋克风。 |
scramble |
乱码解码 | Scramble | ★★★ | 文字先以乱码出现,逐渐解码为目标文字。 |
count-up |
数字滚动 | Count Up |
相关专题 热门下载 相关下载 精品课程 热门推荐 /
最新课程
phpStudy极速入门视频教程
共6课时 | 54.7万人学习
独孤九贱(4)_PHP视频教程
共89课时 | 133.9万人学习
PHP实战天龙八部之仿爱奇艺电影网站
共49课时 | 82.5万人学习 |