Vibe Coding与设计(三):两步搞定前端动效,让网站瞬间 “活” 起来
原创 KaitoX 2026年1月15日 10:21
前言
欢迎回到 Kaito 的“ Vibe Coding 与设计 ”系列!
在第一篇《如何实现有设计感的网站》中,我们通过拆解网页设计的五个层次—— 视觉基础、基础组件、复合组件、布局模式、交互反馈 ,建立了设计系统的理论框架。
在第二篇《5分钟,实现一个有设计感的网站》中,我们利用 AI 快速落地了一个名为 Nanobanana 的 AI 工具站。虽然页面结构完整、配色也不错,但如果你仔细观察,会发现它少了一点“灵魂”。
这点缺失的“灵魂”,就是第五个层次——交互反馈(Interactive Feedback)。

现在的网页就像一张精美的海报,虽然好看,但它是静止的、冷漠的。当你把鼠标移到按钮上时,它没有反应;当你滚动页面时,内容生硬地出现。这种体验在当今的 Web 标准下,只能算是“及格”,远称不上“出色”。
今天这篇文章,我们将为 Nanobanana 注入生命。我们将探讨 如何通过动画(Animation)提升用户体验, 并深入讲解两种核心的技术方案: Lottie 与 Motion, 最后基于第二节中生成的页面,在页面中增加相应的动画,让我们的网站“活”起来。
为什么你的网站需要动画?
很多开发者认为动画只是“锦上添花”的装饰,甚至觉得它会拖慢性能。但在 Vibe Coding 的理念中, 动画是设计语言的一部分 。
好的动画能解决三个关键问题:
- 引导视线 :告诉用户哪里是重点,下一步该看哪里。
- 提供反馈 :确认用户的操作已被系统接收(比如按钮按下的回弹)。
- 塑造性格(Vibe) :
- 苹果官网的动画:缓慢、优雅、流畅 -> 高端、精致
- Duolingo 的动画:Q弹、夸张、快速 -> 有趣、亲切
两大流派:Lottie vs Motion
在 Web 前端开发中,实现动画主要有两大主流流派。理解它们的区别,是选对工具的关键。
1. Lottie 动画:设计师的秘密武器
Lottie 是一种基于 JSON 的动画文件格式。它的工作流是: 设计师在 After Effects (AE) 中制作复杂的矢量动画 -> 导出为 JSON 文件 -> 开发人员通过 Lottie 库在 Web/App 端渲染。
- 优点 :
- 表现力极强 :可以实现极度复杂的角色动画、形变、插画动态,这是纯代码很难写出来的。
- 跨平台 :一套 JSON,Web、iOS、Android 通用。
- 矢量高清 :放大缩小不失真。
- 缺点 :
- 交互性弱 :虽然可以控制播放/暂停/进度,但很难精细控制动画内部的具体元素(比如让角色的衣服随鼠标变色)。
- 文件体积 :复杂动画的 JSON 文件可能达到几百 KB 甚至 MB。
- 适用场景 :Hero Section 的主视觉、复杂的 Loading 动画、空状态插画、徽章/图标动画。
2. Motion (Code-Driven):开发者的魔法棒
这里主要指 Framer Motion (React) 或 GSAP 这类代码驱动的动画库。它们通过操作 DOM 元素的 CSS 属性(transform, opacity)来实现动画。
- 优点 :
- 交互性极强 :可以完美响应鼠标移动、滚动位置、组件状态(Hover/Tap)。
- 轻量灵活 :不需要加载外部的大文件,所有逻辑都在 JS Bundle 中。
- 布局感知 :最强大的功能是
layout属性,可以让元素在布局变化(如列表重新排序)时自动平滑过渡。
- 缺点 :
- 制作复杂插画困难 :如果你想画一个挥手的小人,用代码写
path会累死人。 - 适用场景 :页面转场、滚动入场效果(Scroll Reveal)、按钮微交互、列表排序、弹窗展开。
总结对比
| 特性 | Lottie | Motion (Framer Motion) |
|---|---|---|
| 核心驱动 | 设计师 (AE/Figma) | 开发者 (Code) |
| 擅长领域 | 复杂插画、角色动作 | UI 交互、布局过渡 |
| 可控性 | 整体控制 (播放/暂停) | 极细颗粒度 (每个属性) |
| 文件依赖 | 需要 JSON 资源文件 | 依赖 JS 库 |
| 最佳用途 | 视觉锚点 (Visual Anchor) | 交互反馈 (Feedback) |
实战演练:为 Nanobanana 注入灵魂
制定策略:为了达到最佳效果,我们将 混合使用 这两种技术。
- Hero Section :使用 Lottie 放置一个动态的 AI 机器人,作为视觉中心。
- UI 交互 :使用 Framer Motion 制作按钮回弹、卡片滚动浮现等效果。
第一步:集成 Lottie 打造视觉焦点
关于 Lottie 动画,我推荐两种获取方式:
第一种是使用 Magic Animator(https://www.figma.com/community/plugin/1520062874404933233/magic-animator-ai-animation-generator-for-figma),功能比较强大,可以直接把落地页转成动画,但是要收费,有兴趣的同学可以自行研究。
第二种是去 LottieFiles(https://lottiefiles.com/featured-free-animations) 中找免费动画放到 Hero Section 中。
考虑到成本因素,我选择在 LottieFiles 中寻找免费动画来提升页面质感。
首先,寻找与页面风格相符的 Lottie 动画,我找的是这个毛毛虫(https://lottiefiles.com/free-animation/caterpillar-loader-0Zi0BMLHdP):

然后点击 Handoff,然后复制相关代码到项目中,告知 AI "在页面的 xxx 区域增加这个 Lottie 动画"就好了,比如我输入的 Prompt:
请在HeroSection中,新增一个 lottie 动画: import React from 'react'; import { DotLottieReact } from '@lottiefiles/dotlottie-react'; const App = () => { return ( <dotlottiereact src="https://lottie.host/52127f83-29f4-4954-b66f-b1e2041b16a3/FvVzWmqJDL.lottie" loop="" autoplay=""> ); }; </dotlottiereact>
加上毛毛虫效果后,我们的页面变成了以下效果,感觉还不错,有质感了很多,但是缺少动画看着还是有点儿生硬:
第二步:使用 Framer Motion 增加交互质感
Framer Motion 是基于代码的动画库,实现方式比 Lottie 更灵活,直接告诉AI就好。我们可以针对页面的不同区域做精细调整,比如我输入的 Prompt 是:
整体:在页面中增加点儿Framer Motion动画 局部:在 Community Love 的内容区域,增加多几个评论,然后增加 Framer Motion动画,让他横向滚动起来
大家可以仔细看一下这两个版本的区别,已经有了过渡动画,以及评论也滚动起来了,看起来非常有质感!(PS:毛毛虫被我换成了大香蕉)
结语
仅用 5 分钟,我们就让 Nanobanana 从静态页面蜕变成了一个会呼吸、有温度、能互动 的现代网站。
Vibe Coding 的本质,是用工程师的理性去表达设计师的感性——动画不是装饰,而是 产品性格的视觉化呈现 。
三条建议:
- 先找感觉 :去 LottieFiles 或 Framer Motion 官网找灵感
- 小步快跑 :从 Hero Section 的一个动画开始,不要贪多
- 善用 AI :直接把 Lottie 代码或效果描述丢给 AI,比翻文档快 10 倍
从第一篇的理论框架,到第二篇的 5 分钟搭建页面,再到本篇的 5 分钟加入动画—— 一个完整的「有 Vibe 的网站」已经呈现在你眼前 。
下一期想看什么内容?欢迎留言!
也欢迎关注我的公众号,后续我会持续分享 AI 工程化实践、设计系统搭建等内容。让我们一起,用 AI 的效率 + 设计的温度,做出真正有灵魂的产品。
Vibe Coding与设计 · 目录