小红点、Toast 还是弹窗?15 款网页消息提示效果,按打扰用户的轻重铺开

小红点、Toast 还是弹窗?15 款网页消息提示效果,按打扰用户的轻重铺开

页面要跟用户说一句话,可选的形式其实排得出一条线:角标、骨架屏、Toast、顶部横幅、模态框。它们做的事是同一件——把信息递过去——区别只在你允许它打断用户到什么程度。

这条线上的位置一旦选错,代价是不对称的。该轻的做重了,用户记住的是「这个站老弹东西」;该重的做轻了,付款失败的提示两秒钟就滑走了,人还在那儿等着。而多数人挑这类组件时是按好看程度挑的,很少按「它有多打扰人」挑。

所以下面 15 款不分类别、不按技术分组,从完全不打断排到挡住整屏,一档一档往上走。每一档会说清楚它换来了什么、代价是什么,以及那一档上真正该守的规矩。


第一档 · 它不打断你,只是在那儿亮着(01 - 04)

这一档的共同点是:不占用主内容区,不打断任何正在进行的操作,用户什么时候想看就什么时候点开。代价是它不保证被看见——重要到必须立刻知道的事,不能只靠这一档。

01. 铃铛加数字:最小的那个通知单元

小红点、Toast 还是弹窗?15 款网页消息提示效果,按打扰用户的轻重铺开

纯 CSS

一个会晃的铃铛,右上角挂消息数量。整个效果没有 JavaScript,晃动和角标都是 CSS 做的。它值得放在第一位不是因为复杂,恰恰是因为够简单——这是「有新东西」这件事在界面上的最小表达,几乎所有后台和社区站都从这儿起步。

查看模板详情 →

02. 同一个铃铛,把数字烧起来

小红点、Toast 还是弹窗?15 款网页消息提示效果,按打扰用户的轻重铺开

SVG + CSS

同样是铃铛加数字,这一款把数字做成了燃烧的火焰动画,摇晃幅度也更大。它和上一款是同一个位置上的两种音量:第 01 款适合后台系统里那种一天响二十次的通知,这一款适合一天最多响一次、响了就该去看的场景。动效强度本身就是一种优先级标注,同一个界面里别把两种混着用。

查看模板详情 →

03. 点开铃铛之后:一个能筛未读的通知中心

小红点、Toast 还是弹窗?15 款网页消息提示效果,按打扰用户的轻重铺开

纯 CSS  未读筛选

前两款只解决「告诉你有」,这一款解决「你点开之后看什么」。点铃铛展开通知列表,带一个过滤按钮可以只看未读,收起也是点铃铛。整套仍然是纯 CSS,没引任何库。

通知中心是个容易被低估的组件:一旦你的站开始有两种以上的通知来源(系统消息、评论回复、订单状态),没有这么一个收纳处,就只能靠一档更高的形式去弹,用户很快会烦。

查看模板详情 →

04. 通知卡片的样子:液态玻璃

小红点、Toast 还是弹窗?15 款网页消息提示效果,按打扰用户的轻重铺开

纯 CSS  毛玻璃模糊

半透明渐变加柔和光影做出流动玻璃的质感,每条通知带轻微的毛玻璃模糊,首条还有一圈中心扩散动画。它是上一款的皮肤层——结构照旧,观感换掉。

用这种半透明质感有个前提:背景要够干净。毛玻璃叠在花哨的背景图上,文字对比度会掉得很快,通知这种以「读得清」为第一要务的组件,最怕的就是这个。

查看模板详情 →


第二档 · 还没话说的时候,先占住位置(05)

这一档只有一款,但它是整条线上最容易被跳过的一环。内容还没到,页面已经在那儿了——这段空白期你不处理,用户看到的就是一片惨白,然后是内容砸下来时的整页跳动。

05. 骨架屏:连「不想看动画的人」都想到了

小红点、Toast 还是弹窗?15 款网页消息提示效果,按打扰用户的轻重铺开

CSS + JS  明暗双模式  减少动画选项

移动端骨架屏,内容加载前先用灰块把版式占出来,避免加载间隙的生硬空白,也避免内容到位时的布局跳动。它同时给了浅色和深色两套,夜里用深色不刺眼。

真正让这一款值得单独讲的是那个「减少动画」开关。骨架屏那道来回扫的高光对前庭功能敏感的人来说是实打实的不适,浏览器层面早就有标准答案:prefers-reduced-motion 这个媒体查询按 caniuse 的统计全球支持率已达 96.45%(Chrome 74、Firefox 63、Safari 10.1、Edge 79 起支持),读取系统设置就能知道用户要不要动画。这一款把选项做进了界面,是更进一步的做法。做任何持续循环的动效,这条都该顺手加上。

查看模板详情 →


第三档 · 冒个头,说完就走(06 - 09)

Toast 是这条线的中点,也是被用得最随便的一档。它的性质要说清楚:Toast 是「操作反馈」,不是「信息发布」。「已保存」「已复制」「网络断了」适合它;需要用户读完才能继续的事,一律不适合——因为它会自己消失,而你不知道人有没有看见。

06. 最朴素的那种:弹出、停几秒、自己走

小红点、Toast 还是弹窗?15 款网页消息提示效果,按打扰用户的轻重铺开

HTML + CSS + JS

轻量到没有多余东西,表单提交完、操作成功了给一句反馈就够。整条线上你最常需要的其实就是它。

查看模板详情 →

07. 带倒计时进度条的 Toast:把「还剩几秒」画出来

小红点、Toast 还是弹窗?15 款网页消息提示效果,按打扰用户的轻重铺开

Canvas + JS  倒计时进度条

在普通 Toast 上加了一圈用 Canvas 画的倒计时动画,用户能看见它还会停留多久。比起「突然就没了」,这是个明显的体验改进。

顺着这个说一条容易被忽略的规矩:会自动消失的内容,属于无障碍标准里的「时间限制」。W3C 的 WCAG 2.1 成功准则 2.2.1「可调整时间」(Timing Adjustable,A 级)要求这类时间限制至少满足以下三条之一:

  • 能关掉——用户在遇到时间限制之前就可以取消它;

  • 能调整——允许调到默认时长的十倍以上;

  • 能延长——到期前发出警告,并留至少 20 秒、允许用简单操作延长,且可延长十次以上。

落到 Toast 上,最省事的做法是:鼠标悬停或获得焦点时暂停倒计时,并且始终留一个关闭按钮;关键信息则干脆别让它自动消失。这一款把剩余时间可视化,等于先把「有个时间限制」这件事告诉了用户,方向是对的。

查看模板详情 →

08. 四种状态,四种颜色,边缘还会溅一下

小红点、Toast 还是弹窗?15 款网页消息提示效果,按打扰用户的轻重铺开

纯 CSS  4 种状态

警告、错误、成功、帮助四款一套,蓝绿橙红四色区分,右上角都有小叉号可以手动关。视觉上的花招是用 background 的 radial-gradient 做出液体溅射的边缘,纯 CSS,没有图片。

颜色加图标双重编码是这一款做对的地方——只靠颜色区分状态,对色觉障碍用户等于没区分,图标补的就是这一层。

查看模板详情 →

09. 25 种风格一次给你,直接在界面上切

小红点、Toast 还是弹窗?15 款网页消息提示效果,按打扰用户的轻重铺开

CSS + JS  25 款风格

右下角弹出的提示框,内置 25 款风格,主题和动效都能在预览界面上实时切换。它的用法和前三款不太一样——与其说是一个组件,不如说是一份挑选样张:先在里面找到符合你界面气质的那一款,再把对应的那套样式拿走。后台系统要统一通知样式时,这种给足选项的资源比单款效果省事。

查看模板详情 →


第四档 · 横在页面顶上,不关掉不走(10 - 12)

到这一档,信息开始占用页面空间、挤压正文。换来的是它不会自己消失——用户必须做一个动作才能让它走。这一档几乎就是为两类内容准备的:状态通告,和合规告知。

10. 顶部横幅:能关,且关掉之后不再纠缠

小红点、Toast 还是弹窗?15 款网页消息提示效果,按打扰用户的轻重铺开

CSS + JS  可关闭

顶部通栏提示,支持成功、错误、信息几种类型,进出都有平滑动画,带手动关闭。适合放系统维护公告、活动期通知、配送延迟说明这类「不看会吃亏、但不影响当前操作」的内容。

查看模板详情 →

11. Cookie 同意面板:把「拒绝」做得和「接受」一样好按

小红点、Toast 还是弹窗?15 款网页消息提示效果,按打扰用户的轻重铺开

CSS + JS + GSAP  分类开关  localStorage 记忆

这一款把 Cookie 同意做成了一块紧凑的面板:必需、偏好设置、分析、市场营销四类各有开关,再配「全部接受」「保存」「拒绝非必要」三个快捷按钮,选择存进 localStorage,之后不再重复弹。保存时有一小段 GSAP 驱动的撒花动画。

那三个并列按钮不是设计上的随意选择。GDPR 第 7 条第 3 款写得很明确:撤回同意应当和给予同意一样容易("It shall be as easy to withdraw as to give consent");同条第 2 款还要求同意请求要以清晰、可理解、易于获取的形式,与其他内容明确区分开。落到界面上,就是「拒绝非必要」不能藏进二级页面,而「全部接受」是个大绿按钮——这套面板把三个动作摆在同一层,是合规设计里最基本的形态。做面向欧盟访客的站,这一条躲不掉。

查看模板详情 →

12. 更轻的那种 Cookie 提示:一个函数,一个有效期

小红点、Toast 还是弹窗?15 款网页消息提示效果,按打扰用户的轻重铺开

JavaScript  默认 30 天

只有接受和拒绝两个选项,接受之后写一个 Cookie,默认有效期 30 天,这个天数可以自己改,过期前不再弹。代码量极小,适合只是想有个基本告知、不做分类管理的站。

要清楚它的边界:这一款是「告知型」的,不是「同意管理型」的——它不做分类授权,也不给用户事后改主意的入口。业务不涉及欧盟用户、只想在首访时说明一下 Cookie 用途,它够用;要满足上一款那套要求,就得用上一款。

查看模板详情 →


第五档 · 挡住整屏,必须回应(13 - 15)

最重的一档。模态框的全部价值在于它强制中断——用户不处理就不能继续。所以它只该用在两种时候:确认一个不可逆的操作(删除、支付、注销),或者报告一个必须被知道的结果。除此之外的用法,都是在消耗用户的耐心。

13. 成功与失败:用一段 SVG 动画把结果说清楚

小红点、Toast 还是弹窗?15 款网页消息提示效果,按打扰用户的轻重铺开

Bootstrap 5  SVG 动画

成功和错误两种结果态弹窗,中间那个对勾或叉号是 SVG 动画画出来的。因为直接基于 Bootstrap 5 的模态组件,站本身如果就是 Bootstrap 5,这一款几乎是零成本接入——圆角、宽度、描边这些在 CSS 里调两行就能对上自家风格。

查看模板详情 →

14. 24 种入场动效,一个外部库都不引

小红点、Toast 还是弹窗?15 款网页消息提示效果,按打扰用户的轻重铺开

CSS 3D + JS  24 种动效

翻转、弹跳、3D 折纸等 24 种模态框入场动画,全部用 CSS 的 3D 变换和贝塞尔曲线过渡做,不引入任何第三方动效库。作者在详情页里把这件事当成核心卖点讲:为了一个弹窗动画去装一个庞大的动效库,拖慢的是整站的首屏加载。

这个判断值得认同。弹窗动画属于典型的「锦上添花」需求,用它换掉首屏几百 KB 的 JS 是笔亏本买卖。顺带一提,这一档的动效尤其该配合第 05 款提到的 prefers-reduced-motion——整屏元素做 3D 翻转,对动效敏感的人是最难受的一种。

查看模板详情 →

15. 自动弹出的那一种:能力给你了,用不用是另一回事

小红点、Toast 还是弹窗?15 款网页消息提示效果,按打扰用户的轻重铺开

jQuery  延时 / 滚动触发  自动关闭

轻量的 jQuery 弹窗,能装图片、视频或任意 div,支持自定义延时弹出、自动关闭,也能绑到窗口滚动这类事件上触发。功能本身做得干净,广告位、新闻公告、活动弹层都能用。

但这一档到这里必须把话说完整。Google 从 2017 年 1 月 10 日起,把移动端「侵入式插页广告」纳入了排名考量:用户从搜索结果点进来、内容却被弹层盖住的页面,排名可能受影响。官方列出的例外只有三类——法律义务要求的告知(Cookie 同意就在其中)、非公开内容的登录墙,以及占屏比例合理、不妨碍阅读的横幅。

所以这一款的正确用法是:别在落地瞬间弹。把触发条件改成滚动到一定深度、或者停留若干秒之后,用它自带的滚动触发就能做到;移动端则考虑降一档,换成第 10 款那种顶部横幅。技术上能自动弹,不等于应该自动弹。

查看模板详情 →


五档各归各位

这一档是什么 该用它的时候 不该用它的时候
一 · 角标与通知中心 积攒型信息:评论回复、系统消息、订单状态更新 必须立刻知道的事——它不保证被看见
二 · 骨架屏 内容在路上、版式可以预先占位的加载期 加载快到一闪而过,反而制造闪烁
三 · Toast 操作反馈:已保存、已复制、提交成功 需要用户读完才能继续的内容
四 · 顶部横幅与 Cookie 状态通告、合规告知,要留到用户处理为止 日常反馈——长期占着顶部会被视而不见
五 · 模态框 不可逆操作的确认,和必须被知道的结果 落地即弹的营销内容(移动端尤其)

挑之前先问一句:这条信息如果用户没看见,会发生什么?什么都不会发生,就往第一档放;他会白等或者做错事,才值得往上走。这条线上越往上,权限越大,也越该省着用。

本文 15 款都在童哲网前端资源板块。相关的几篇:表单与登录界面效果(第 13 款那种结果弹窗的上一步)、CSS 加载动画与进度条效果(第 05 款骨架屏的邻居)、卡片与布局效果(第 04 款那类质感卡片的完整做法)、CSS 按钮与开关交互效果(第 11 款那几个分类开关的样式来源)。