A place to hold mainly reading notes, and some technical stuff occasionally. 这里主要是一些读书笔记、感悟;还有部分技术相关的内容。
目录[-]
我想在同一个页面弹窗多个 toastr
,分别在不同的位置。
但是遇到了问题:无法弹出多个不同位置的 toastr
。即后续的 toastr
(即使单独配置了positionClass),依然使用的是第一个位置配置。
原本的 toastr
,当设置不同的位置时,后一次的弹窗位置与前一次的弹窗的消失时间有关,这在 Codepen
上有个演示。
Codepen
上的效果展示https://codepen.io/grantiverson/pen/GGMKzV
在 toastr
源码中看到了有相关的 Issue:Fix using multiple positions at the same time #635
,有小伙伴遇到了同样的问题。
而且这还通过 GitHub
上的一个PR解决了,修改后的 toastr
源码:
通过以上 toastr
的源码替换,我在这个小工具项目中实现了预期的想法。共涉及三个不同位置的弹窗:每次有消息时,左侧显示正常提示,右侧显示异常提示,当点击前两者时,中间弹出“复制成功”。
let that = this;
// error toastr with copy, right
toastr.options.positionClass = 'toast-top-right';
toastr.options.timeOut = 0;
toastr.options.extendedTimeOut = 0;
toastr.options.closeButton = true;
toastr.options.tapToDismiss = false;
toastr.error("异常:出错了:<br />错误信息", null, {
"onclick": function(event) {
that.copy(event.target.innerHTML);
}
});
// info toastr with copy, left
toastr.options.positionClass = 'toast-top-left';
toastr.options.timeOut = 0;
toastr.options.extendedTimeOut = 0;
toastr.options.closeButton = true;
toastr.options.tapToDismiss = false;
toastr.info("信息:按计划进行:<br />基本信息", null, {
"onclick": function(event) {
that.copy(event.target.innerHTML);
}
});
// copy successfully message, center
toastr.options.positionClass = 'toast-top-center';
toastr.options.timeOut = 2000;
toastr.options.closeButton = false;
toastr.success('复制成功');
If you have any questions or any bugs are found, please feel free to contact me.
Your comments and suggestions are welcome!