跳到主要内容

toastr 实现消息提示

本节我们介绍了一个可以方便的进行消息气泡提醒的库,就是 toastr。

原文档https://github.com/CodeSeven/toastr

这里仅做简单的翻译,方便大家查阅和参考

是我个人的理解和大概翻译,如果出现错误请以官方为准。

示例

// ==UserScript==
// @name toastr Demo
// @namespace https://bbs.tampermonkey.net.cn/
// @version 0.1.0
// @description try to take over the world!
// @author You
// @require https://cdn.bootcdn.net/ajax/libs/toastr.js/2.1.4/toastr.min.js
// @resource CSS https://cdn.bootcdn.net/ajax/libs/toastr.js/2.1.4/toastr.min.css
// @match https://bbs.tampermonkey.net.cn/*
// @grant GM_getResourceText
// @grant GM_addStyle
// @grant unsafeWindow
// ==/UserScript==

GM_addStyle(GM_getResourceText("CSS"));
toastr.info("Are you the 6 fingered man?");

详细信息

展示警告信息

toastr.warning(
"My name is Inigo Montoya. You killed my father, prepare to die!"
);

展示成功信息

toastr.success("Have fun storming the castle!", "Miracle Max Says");

展示错误信息

toastr.error(
"I do not think that word means what you think it means.",
"Inconceivable!"
);

立即移除 toast 不使用动画

toastr.remove();

立即移除 toast 但使用动画

toastr.clear();

覆盖全局配置的 toast

toastr.success("We do have the Kapua suite available.", "Turtle Bay Resort", {
timeOut: 5000,
});

使用转义字符

toastr.options.escapeHtml = true;

选项启用关闭按钮

toastr.options.closeButton = true;

也可选择选择覆盖关闭按钮的 HTML 如 : toastr.options.closeHtml = '<button><i class="icon-off"></i></button>';

单击关闭按钮时可以选择覆盖隐藏动画

toastr.options.closeMethod = "fadeOut";
toastr.options.closeDuration = 300;
toastr.options.closeEasing = "swing";

控制显示顺序

toastr.options.newestOnTop = false;

默认为假,如果为真则从上方显示最新

回调

// Define a callback for when the toast is shown/hidden/clicked
toastr.options.onShown = function () {
console.log("hello");
};
toastr.options.onHidden = function () {
console.log("goodbye");
};
toastr.options.onclick = function () {
console.log("clicked");
};
toastr.options.onCloseClick = function () {
console.log("close button clicked");
};

防止重复

通过与之前的 toast 内容进行匹配来判断重复。

toastr.options.preventDuplicates = true;

超时控制

toastr.options.timeOut = 30; // How long the toast will display without user interaction
toastr.options.extendedTimeOut = 60; // How long the toast will display after a user hovers over it

timeout 为没有用户交互的情况下的显示时间

extendedtimeout 为用户鼠标悬停时,toast 的显示时间

防止自动隐藏

将超时以及悬停超时设置为 0,则一直存在直至被选中

toastr.options.timeOut = 0;
toastr.options.extendedTimeOut = 0;

进度条

视觉上提示用户还有多久用户 toast 过期

toastr.options.progressBar = true;