Toastify‑JS 是一个用原生 JavaScript 实现的轻量级通知(toast)库。它的设计目标是简洁、无依赖、易于集成,同时兼顾灵活性和可定制性。相比传统通过 alert、modal 或者依赖大型 UI 框架的方式,Toastify-JS 更适合需要快速、简单、非阻塞通知的场景 —— 比如表单提交成功提示、操作反馈、页面状态提醒等。
其主要特点包括:
- 纯 JS,无依赖第三方库。
- 支持多个通知同时堆叠(stacked notifications)。
- 高度可定制 —— 通知内容、样式(背景色/渐变)、位置、持续时间、关闭按钮、点击事件等都可配置。
- 非阻塞:toast 的出现与隐藏不会阻塞页面的其他 JS 执行或用户交互。
- 兼容主流浏览器 —— 包括现代浏览器及 IE10+。
因此,Toastify-JS 非常适合希望以极少代码实现「轻提示/通知」功能的前端项目。
安装与引入
根据你的项目类型,可以通过两种主要方式引入 Toastify-JS。
方式一 — npm/yarn(模块化项目)
npm install --save toastify-js
# 或者
yarn add toastify-js
然后在你的 JS/TS 模块中导入:
import Toastify from 'toastify-js';
import "toastify-js/src/toastify.css"; // 可选:使用默认样式
这样适合现代前端工程化、模块化构建流程。
方式二 — 通过 CDN 或 script 标签(简单 HTML 页面)
在 HTML 中添加:
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/toastify-js/src/toastify.min.css">
<script src="https://cdn.jsdelivr.net/npm/toastify-js"></script>
这样你可以在页面中直接使用 Toastify(...),无需构建工具。
Toastify-JS 基本用法示例
引入后,你可以通过以下最简单的方式显示一条通知:
Toastify({
text: "This is a toast",
duration: 3000
}).showToast();
这条通知会显示 3000 毫秒后自动消失。
这样你就可以轻松为用户提供反馈,比如「保存成功」「提交失败,请重试」等提示。
常用配置与高级用法
Toastify-JS 提供了丰富的配置选项,让通知足够灵活以适应不同场景。下面是一些常用配置示例和说明:
| 配置项 | 作用 |
|---|---|
text |
要显示的文本内容(字符串) |
node |
如果需要显示复杂内容,也可以传入一个 DOM 节点,优先级高于 text |
duration |
通知持续时间(毫秒),设为 -1 可让通知永久显示,直到手动关闭 |
selector |
指定将通知插入到哪个容器或节点 |
destination + newWindow |
点击通知后跳转链接,可以选择是否在新窗口打开 |
close |
是否显示关闭按钮图标 |
gravity |
通知从页面顶部("top")或底部("bottom")出现 |
position |
通知水平位置 —— "left"、"center"、"right" |
offset |
为通知指定偏移量(x、y),例如距离页面边缘 50px |
style |
自定义样式(如背景色/渐变、文字颜色等) |
className |
自定义 CSS 类名,可用于统一样式控制或根据类型区分(比如 info、warning、error) |
onClick |
点击通知时的回调函数 |
stopOnFocus |
鼠标移入通知时是否暂停自动关闭计时(预设为 true) |
| 其他 | 还有用于可访问性、堆叠顺序、HTML 内容转义控制等配置项。 |
示例 — 带渐变背景和点击跳转的通知
Toastify({
text: "操作成功!点击查看详情",
duration: 5000,
destination: "https://example.com/details",
newWindow: true,
close: true,
gravity: "top",
position: "right",
style: {
background: "linear-gradient(to right, #00b09b, #96c93d)"
},
onClick: function(){
console.log("通知被点击了");
}
}).showToast();
这个通知会出现在页面右上角,带绿色渐变背景,5 秒后自动消失。用户点击它会在新标签页打开指定链接,并触发点击回调。
示例 — 带偏移、永久显示、有关闭按钮的通知
Toastify({
text: "警告:网络连接已断开",
duration: -1, // 永久显示
close: true, // 显示关闭按钮
gravity: "bottom", // 从底部出现
position: "center",
offset: { y: -20 }, // 向上偏移 20px
style: {
background: "#ff4d4f", // 红色背景
color: "#fff"
}
}).showToast();
适用于重要提示或警告信息,需要用户手动关闭的时候。
推荐使用场景
Toastify-JS 的设计使其非常适合以下场景:
- 表单提交、保存、删除操作后的提示反馈
- 异步请求成功/失败提示
- 页面加载、初始化完成后的提醒
- 用户操作路径中短暂通知(如复制成功、保存成功、提示注意事项等)
- 后台管理系统、仪表板、工具类网页中需要快速反馈的场景
因为它不阻塞、不依赖、不冗重,所以特别适合中小型项目、纯静态页面、或希望保持页面轻量的场景。
总结
Toastify-JS 是一个非常实用、轻便、灵活的 JS 通知库。无论你是现代前端框架项目,还是传统 HTML 页面,都可以很容易地引入并使用。它的核心优势在于 轻量 + 无依赖 + 可高度自定义,非常适合快速为网页添加 toast 通知功能。如果你希望为用户提供友好、简洁、不打断用户流程的反馈体验,Toastify-JS 是一个很好的选择。