首页 › AI Coding › 网页动效词典 › Vibe Coding 网页动效词典(下篇):组件反馈、布局过渡与页面转场

Vibe Coding 网页动效词典(下篇):组件反馈、布局过渡与页面转场

你已经会让内容淡入、让卡片交错出现,也知道视差滚动、磁吸按钮和鼠标跟随该怎么说。可一到产品页面,新的问题又来了:弹窗突然蹦出来,菜单展开像页面坏了一下,加载时整块内容凭空消失,切到详情页以后用户不知道自己去了哪里。​

这套词典仍然按照四层结构来组织:​

​

代码块​

Plain Text

第一层:技术工具——用什么实现​

第二层:触发方式——什么时候开始​

第三层:动效类型——画面具体怎么动​

第四层:UX 规则——怎样动才好用​

​

一、组件打开、关闭与切换​

组件动效经常由点击触发,但“点击”无法告诉 AI 菜单该从哪里出现、背景要不要变暗、关闭时怎样返回。下面七个词,覆盖导航、弹窗、标签页和消息提示中最常见的状态变化。​

Accordion:折叠展开​

折叠展开用于隐藏和显示一段内容。点击标题后,内容区域沿垂直方向打开;再次点击时收起,并让下面的内容平稳让位。​

常见类型:​

•

问答列表向下展开答案。​

•

设置面板展开更多选项。​

•

侧边栏展开二级目录。​

•

“查看详情”打开一段补充内容。​

•

加号在展开后变成减号。​

适合: 常见问题、设置项、目录和需要节省空间的长列表。收起后要保留清楚的标题,用户才能再次找到它。​

​

代码块​

Plain Text

问答列表使用折叠展开(Accordion)。点击问题后,答案从标题下方向下展开,下面的内容平稳下移;再次点击时按原路径收起。展开项保持高亮,加号同步变成减号。​

​

Dropdown / Tooltip / Popover:锚定浮层​

这几个名字都指依附在某个触发点附近的浮层。Tooltip 是短提示,通常由悬停或键盘聚焦触发;Popover 可以放按钮等可操作内容;Dropdown 是一组选项;Mega menu 则是导航栏展开的大型多列菜单。它们出现和关闭时,都要让用户看出浮层属于哪个触发点。​

常见类型:​

•

点击头像后展开账号菜单。​

•

悬停导航项后显示多列菜单。​

•

选择框向下打开选项列表。​

•

图标旁边出现一条短提示。​

•

点击按钮后打开带操作项的小浮层。​

•

空间不足时改为向上展开。​

适合: 导航、账号操作、筛选器、图标说明和选择框。浮层要从触发点附近出现,关闭时也回到同一位置;重要操作不能只放在悬停才会出现的 Tooltip 里。​

​

代码块​

Plain Text

导航使用下拉菜单(Dropdown)。鼠标悬停或键盘聚焦产品入口时,菜单从导航项下方展开并轻微淡入;指针移出菜单区域后平稳关闭。普通图标说明使用短提示(Tooltip),带操作按钮的浮层使用 Popover。手机端改为点击展开。​

​

Modal / Dialog transition:弹窗过渡​

Modal 和 Dialog 都指覆盖在当前页面上方的弹窗。出现时通常先让背景变暗,再让弹窗淡入、放大或从下方进入;关闭时沿相反方向离开。​

常见类型:​

•

确认弹窗在画面中央轻微放大。​

•

登录弹窗从触发按钮附近出现。​

•

图片预览从缩略图扩展到中央。​

•

警告弹窗快速出现并保持稳定。​

•

手机端弹窗从底部进入。​

适合: 确认操作、登录、图片预览、重要提醒和短表单。弹窗打开后,背景内容不能继续抢注意力。​

​

代码块​

Plain Text

点击“删除”后打开确认弹窗(Modal)。背景遮罩先轻微变暗,弹窗随后在中央淡入并小幅放大;关闭时按相反顺序退出。弹窗打开期间锁定背景滚动,并把键盘焦点放进弹窗。​

​

Drawer / Bottom sheet:抽屉与底部面板​

Drawer 是从页面边缘滑出的抽屉,Bottom sheet 是从屏幕底部升起的面板。它们适合承载比弹窗更多的内容,同时保留用户对原页面的方位感。​

常见类型:​

•

购物车从右侧滑入。​

•

手机导航从左侧打开。​

•

筛选条件从页面边缘进入。​

•

分享选项从手机底部升起。​

•

向下拖动关闭底部面板。​

适合: 导航、购物车、筛选器、详情面板和移动端操作。抽屉从哪一侧进入,就从哪一侧离开,不要换方向。​

​

代码块​

Plain Text

点击购物车后打开右侧抽屉(Drawer)。抽屉从右侧滑入,背景同时出现轻微遮罩;关闭时向右退回。手机端让抽屉接近全屏,并支持向下滑动关闭。​

​

Tab transition:标签页切换​

标签页切换发生在同一块区域内部。用户点击另一个标签后,选中指示器先移动到新标签,下面的内容再切换,让操作与结果连成一次动作。​

常见类型:​

•

下划线滑到新的标签。​

•

胶囊背景在标签之间移动。​

•

内容交叉淡化。​

•

新内容按左右方向滑入。​

•

数据加载完成后再切换内容。​

适合: 价格周期、商品详情、设置页面和数据面板。标签很多时不要让内容大幅飞来飞去,短距离移动或交叉淡化已经足够。​

​

代码块​

Plain Text

标签页切换使用平滑过渡(Tab transition)。点击新标签后,选中指示器先滑到对应位置,内容区域再交叉淡化;容器高度平稳调整,避免下面的页面突然跳动。​

​

Carousel / Slider transition:轮播与滑块切换​

Carousel 和 Slider 都用于在固定区域里切换多张图片或卡片。常见动作是左右滑动、交叉淡化,或者让当前卡片缩小后退到旁边。​

常见类型:​

•

图片左右滑动切换。​

•

两张图片交叉淡化。​

•

中央卡片放大,两侧卡片缩小。​

•

拖拽后吸附到最近一张。​

•

自动播放,用户操作后暂停。​

适合: 商品图、案例、评价、作品和短步骤介绍。轮播里要有上一张、下一张和当前位置,不能只靠自动播放。​

​

代码块​

Plain Text

案例区使用轮播切换(Carousel)。用户点击箭头或横向拖拽时,当前卡片向左离开,下一张从右侧进入并吸附到中央;显示当前位置,用户操作后暂停自动播放。​

​

Toast / Snackbar:轻提示消息​

Toast 或 Snackbar 是短暂出现的操作反馈,常见于“保存成功”“已复制”“网络断开”。它不会像弹窗一样中断任务,显示片刻后会自动离开。​

常见类型:​

•

从页面顶部或底部滑入。​

•

在角落淡入并停留。​

•

多条消息依次堆叠。​

•

带一个撤销按钮。​

•

错误消息保持更久,等待用户处理。​

适合: 保存、复制、加入购物车、网络状态和不需要立刻回答的提示。关键错误不能只闪一下就消失,要给用户继续处理的入口。​

​

代码块​

Plain Text

复制链接后显示轻提示(Toast)。提示从页面底部轻微上移并淡入,显示“已复制”,停留片刻后淡出;连续操作时更新同一条提示,不要让多条消息遮住页面。​

​

二、数字、加载与结果反馈​

这一组动效出现在用户等待结果的时候。它们要告诉用户系统正在做什么、已经完成到哪里、最终成功还是失败。只放一个旋转图标,往往回答不了这些问题。​

Animated counter / Odometer:数字计数与翻牌​

数字计数让数值从旧结果平滑变化到新结果。Odometer 指像里程表一样逐位翻动数字,常用于关键数据和统计结果。​

常见类型:​

•

数字从零增长到最终值。​

•

旧数值平滑更新到新数值。​

•

每一位数字上下翻动。​

•

百分比与进度条同步增长。​

•

金额变化时短暂标出增减方向。​

适合: 数据概览、销售额、里程、完成率和关键成绩。数字必须停在准确结果上,动画不能让用户误读数值。​

​

代码块​

Plain Text

数据卡片进入视口后播放数字计数(Animated counter)。数字从旧值平滑增长到最终结果,只播放一次;千位分隔符和单位始终保持稳定,动画结束后显示准确数值。​

​

Skeleton loading:骨架屏加载​

骨架屏先用灰色占位块展示页面大致结构,真实内容加载完成后再替换进去。用户能提前看到标题、图片和列表会出现在哪里,页面也不容易突然跳动。​

常见类型:​

•

卡片标题与正文使用灰色条占位。​

•

图片位置显示固定比例的色块。​

•

列表先显示多行相同骨架。​

•

占位块缓慢明暗呼吸。​

•

一道柔和高光从骨架表面经过。​

适合: 信息流、商品列表、个人主页和结构已经确定的异步内容。等待时间很短时直接显示内容,没必要让骨架闪一下。​

​

代码块​

Plain Text

内容加载时显示骨架屏(Skeleton loading)。骨架块保持与真实卡片相同的尺寸和布局,并使用轻微的明暗呼吸;数据到达后平滑替换为真实内容,页面位置不能跳动。​

​

Loading indicator:加载指示与进度​

加载指示分成两类。系统不知道何时完成时,用旋转图标、跳动圆点或循环进度条,只表达“还在工作”;系统知道已经完成多少时,用百分比、进度条或步骤编号显示真实进度。​

常见类型:​

•

按钮内部出现小型旋转图标。​

•

三个圆点依次跳动,表示正在生成。​

•

文件上传显示完成百分比。​

•

圆形进度环逐渐填满。​

•

批量任务显示已完成数量。​

适合: 提交、搜索、生成、上传、下载和导出。等待变长以后,要补充状态文字和取消入口;能够计算进度时,就不要一直让用户看着圆圈旋转。​

​

代码块​

Plain Text

提交后显示加载指示(Loading indicator)。无法估算进度时,在按钮内显示旋转图标并禁止重复点击;能够计算进度时,改为显示真实百分比和进度条。任务完成后进入成功或失败状态。​

​

Success / Error feedback:成功与错误反馈​

成功和错误动效负责确认结果。成功常用勾选、颜色变化和轻微放大;错误常用边框变色、提示文字或一次短促抖动。​

常见类型:​

•

对勾沿路径绘制出来。​

•

按钮从加载状态变成成功状态。​

•

输入框错误时短促左右抖动。​

•

错误字段出现说明文字。​

•

操作完成后内容更新并高亮一次。​

适合: 表单提交、付款、保存、上传和关键操作。颜色只能辅助表达,成功与错误还要有图标或文字说明。​

​

代码块​

Plain Text

提交完成后显示结果反馈(Success / Error feedback)。成功时让按钮变为对勾并显示“已保存”;失败时让对应输入框短促抖动一次,并在下方显示具体错误原因和修正方法。​

​

Icon morphing:图标形变​

图标形变让一个图标平滑变成另一个图标,常用来表示同一按钮的状态已经改变。汉堡菜单变成关闭叉号、播放变成暂停,都是这一类。​

常见类型:​

•

三条菜单线变成关闭叉号。​

•

加号变成减号。​

•

播放三角形变成暂停双线。​

•

收藏空心图标变成实心。​

•

箭头旋转表示展开与收起。​

适合: 同一个按钮承担两种相反状态时。图标变化以后,按钮的位置和点击范围要保持稳定。​

​

代码块​

Plain Text

菜单按钮使用图标形变(Icon morphing)。导航关闭时显示三条横线,打开后平滑变成关闭叉号;两种状态共用同一个按钮位置,键盘用户也能读取当前展开状态。​

​

三、布局变化与页面转场​

组件内部的动效解决局部状态,下面三个词负责更大的空间变化:卡片重新排序、一个元素跨页面延续,以及整张页面进入和退出。它们的共同任务,是让用户看懂“旧位置怎样变成新位置”。​

Layout animation:布局过渡​

布局过渡用于元素增删、排序或尺寸变化。旧位置与新位置之间会出现连续移动,周围内容也会一起让位,不会瞬间跳到结果。​

常见类型:​

•

筛选后卡片重新排列。​

•

删除一项后,下面的列表向上补位。​

•

拖拽卡片时其他卡片自动让出位置。​

•

展开卡片后周围布局平稳调整。​

•

网格在不同列数之间重新排布。​

前端资料中常见的 FLIP animation,就是实现布局过渡的一种思路。零基础写提示词时直接描述“从旧位置平滑移动到新位置”已经够用。​

​

代码块​

Plain Text

筛选结果使用布局过渡(Layout animation)。卡片从旧位置平滑移动到新位置,隐藏项淡出,剩余卡片自然补位;不要让整个列表闪烁或重新从头入场。​

​

Shared element transition:共享元素转场​

共享元素转场会让两个界面中的同一个元素保持连续。比如点击商品卡片后,卡片里的图片一边放大、一边移动到详情页主图的位置,用户能看到自己点的东西去了哪里。​

常见类型:​

•

卡片图片扩展为详情页主图。​

•

头像移动到个人主页顶部。​

•

小播放器扩展成完整播放页。​

•

缩略图放大为全屏预览。​

•

列表中的标题移动到详情页标题栏。​

适合: 列表到详情、图库预览、音乐播放和具有明确主物体的页面。两端没有同一个可识别元素时,普通页面转场更清楚。​

​

代码块​

Plain Text

从作品卡片进入详情页时使用共享元素转场(Shared element transition)。卡片中的主图连续放大并移动到详情页顶部,标题跟随到新位置;返回列表时按原路径恢复到原卡片。​

​

Page transition:页面转场​

页面转场描述旧页面怎样离开、新页面怎样进入。它发生在路由切换或章节跳转时,范围比组件动效更大。​

常见类型:​

•

旧页面淡出,新页面淡入。​

•

新页面从右侧进入,表示继续前进。​

•

返回时沿相反方向退出。​

•

一块色幕扫过画面完成切换。​

•

页面先轻微缩小,再进入下一个空间。​

适合: 作品集、品牌网站、应用页面和章节式故事。普通内容网站使用短促淡化就够了,复杂转场会让每次点击都变慢。​

​

代码块​

Plain Text

路由切换使用页面转场(Page transition)。进入下一层页面时,新页面从右侧轻微滑入并淡入;返回时沿相反方向退出。转场期间保留加载反馈,并避免整页长时间空白。​

​

四、第四层:UX 规则——怎样动才好用​

到这里,第三层的常用词已经讲完。第四层不再增加视觉花样,它负责约束前面所有动效:用户能不能看懂、能不能继续操作、在手机和键盘上能不能完成同一件事。​

Feedback:反馈​

反馈是用户做出操作后,界面立即告诉他“我收到了”。悬停变色、按钮按下、出现加载、保存成功和错误说明,都属于反馈。​

检查一个操作时,可以顺着这条线看:​

•

操作前:用户看得出哪里能点。​

•

操作时:按钮有按下或加载状态。​

•

操作后:页面明确显示成功或失败。​

•

失败后:用户知道怎样修正或重试。​

​

代码块​

Plain Text

给所有可操作组件补齐反馈(Feedback)。悬停、键盘聚焦和按下时要有清楚的状态变化;异步操作显示加载,完成后显示成功或错误结果,并提供下一步操作。​

​

Affordance:操作暗示​

Affordance 常翻译为“可供性”,对零基础读者更好记的说法是操作暗示。按钮的形状告诉用户可以点击,下划线告诉用户这是一条链接,拖拽把手告诉用户这里能移动。​

常见操作暗示:​

•

按钮拥有清楚的边界和文字。​

•

链接使用下划线、颜色或箭头。​

•

可拖拽区域显示把手或抓取光标。​

•

可展开项带箭头、加号或状态文字。​

•

输入框拥有标签、边框和键盘焦点样式。​

动效要强化这些信号。一个看起来像普通文字的按钮,即使悬停后很炫,用户也可能根本不会把鼠标移过去。​

​

代码块​

Plain Text

​

Focus:焦点与注意力​

Focus 在网页里有两层含义:视觉上把注意力引向当前任务,操作上让键盘焦点落在正确位置。弹窗打开后背景变暗属于前者,键盘光标进入弹窗属于后者。​

常见要求:​

•

主操作比次要操作更醒目。​

•

弹窗打开后,注意力留在弹窗内。​

•

键盘聚焦状态清楚可见。​

•

关闭弹窗后,焦点回到原按钮。​

•

动画结束后,用户知道下一步看哪里。​

​

代码块​

Plain Text

使用焦点与注意力规则(Focus)。弹窗打开时弱化背景,把键盘焦点移动到弹窗中的第一个操作;关闭后把焦点还给原按钮。所有可操作元素都保留清楚的键盘聚焦样式。​

​

Reduced motion:减少动态​

有些用户会在系统中开启“减少动态”,因为大幅缩放、视差和持续跟随可能引起眩晕。网页可以读取这项偏好,为他们换成更安静的版本。​

需要优先减弱的效果:​

•

大幅视差和滚动缩放。​

•

长距离飞入飞出。​

•

自动循环和持续旋转。​

•

光标拖尾、背景追随和强烈闪烁。​

•

无法暂停的图片序列与自动轮播。​

减少动态以后,状态变化仍然要看得懂。可以保留短促淡化、颜色变化、进度和成功提示,让功能继续正常工作。​

​

代码块​

Plain Text

​

Input modality support:鼠标、触屏与键盘适配​

Input modality 指用户通过鼠标、触屏还是键盘操作页面。网页不能把关键功能只交给鼠标悬停:手机没有持续悬停,键盘用户也不会移动鼠标,所以同一个功能要为不同输入方式准备入口。​

常见替代关系:​

•

鼠标悬停,对应键盘聚焦。​

•

桌面端悬停展开,手机端点击展开。​

•

拖拽排序,同时提供上移和下移按钮。​

•

光标跟随效果,触屏端改为静态。​

•

左右滑动,同时保留上一项和下一项按钮。​

​

代码块​

Plain Text

​

五、最后把四层写进一句提示词​

现在再看一条完整的 Vibe coding 动效描述:​

​

代码块​

Plain Text

使用项目现有的动画工具实现商品详情交互。​

​

用户点击商品卡片时,用共享元素转场把卡片主图连续放大到详情页;返回时按原路径恢复。加入购物车后,按钮先显示短暂加载,再变成成功对勾,同时从页面底部出现“已加入购物车”的轻提示。​

​

弹窗和抽屉打开后要锁定背景滚动,并正确移动键盘焦点。手机端把悬停操作改为点击;用户开启减少动态时,取消大幅位移和缩放,改用短促淡入淡出。​

​

这段话里,四层已经齐了:​

•

技术工具: 使用项目现有方案,不随意增加依赖。​

•

触发方式: 点击卡片、加入购物车、返回页面。​

•

动效类型: 共享元素转场、加载、成功反馈、轻提示。​

•

UX 规则: 焦点、触屏替代、减少动态。​

六、把喜欢的网页变成自己的动效素材库​

三篇动效词典到这里就结束了。这 56 个词不用一次背完,它们更像一套观察网页的坐标。以后遇到喜欢的页面,先亲手操作一遍:移动鼠标、点击按钮、滚动页面、打开菜单,再留意画面怎么回应你。​

观察时按四层往下拆:​

触发方式: 是悬停、点击、滚动、拖拽,还是页面加载后自动开始?​

动效类型: 是淡入、交错出现、视差滚动、磁吸、布局过渡,还是共享元素转场?​

结束状态: 鼠标移开以后怎样恢复?返回上一页时是否按原路径回去?加载完成以后显示什么?​

UX 规则: 操作有没有反馈?用户看得出哪里能点吗?手机和键盘能完成同样的任务吗?减少动态以后还能看懂吗?​

看到一个好动效,就截张图或录一小段屏幕,把它记成下面这几行:​

​

代码块​

Plain Text

​

比如你收藏了一张会跟随鼠标倾斜的作品卡片,发给AI帮你分析触发方式、动效类型、如何互动的。​

然后把它放到自己的网站里,只试一个局部。确认文字仍然好读、按钮仍然好点、手机上没有问题,再决定是否保留。这样的记录积累十几条以后,你会慢慢形成自己的动效素材库,也会知道哪些效果适合自己的内容。​

下一次再向 AI 描述网页,你说的就不会只有“高级一点”“丝滑一点”。你能说清楚谁触发、什么东西动、怎样结束、需要照顾哪些用户,AI 才能把你脑子里的感觉做出来。​

先从收藏夹里最喜欢的一张网页开始:操作一遍,拆一个动效,记下一条,再放进自己的网站。​