diff --git a/docs/examples-docs/toast.md b/docs/examples-docs/toast.md index 731b57245..b0ab7a54e 100644 --- a/docs/examples-docs/toast.md +++ b/docs/examples-docs/toast.md @@ -39,6 +39,11 @@ export default { message: leftSec.toString() }); window.setInterval(() => { + if (leftSec <= 0) { + window.clearInterval(); + toast.clear(); + return; + } if (leftSec <= 1) { window.clearInterval(); toast.message = '跳转中...' diff --git a/packages/toast/src/toast.js b/packages/toast/src/toast.js index 8e6674b9b..9743ff5f5 100644 --- a/packages/toast/src/toast.js +++ b/packages/toast/src/toast.js @@ -2,24 +2,18 @@ import Vue from 'vue'; import merge from 'src/utils/merge'; const ToastConstructor = Vue.extend(require('./toast.vue')); -let toastQueue = []; +let instance; const getInstance = () => { - if (toastQueue.length > 0) { - const instance = toastQueue[0]; - toastQueue.splice(0, 1); - return instance; + if (instance) { + instance.clear(); } - return new ToastConstructor({ + instance = new ToastConstructor({ el: document.createElement('div') }); + return instance; }; -const returnInstance = instance => { - if (instance) { - toastQueue.push(instance); - } -}; const removeDom = event => { if (event.target.parentNode) { @@ -31,7 +25,6 @@ var Toast = (options = {}) => { const duration = options.duration || 3000; let instance = getInstance(); - returnInstance(instance); instance.closed = false; clearTimeout(instance.timer); instance.type = options.type ? options.type : 'text'; diff --git a/packages/zanui-css/src/toast.css b/packages/zanui-css/src/toast.css index d59361425..bf030c483 100644 --- a/packages/zanui-css/src/toast.css +++ b/packages/zanui-css/src/toast.css @@ -44,7 +44,7 @@ } .zan-toast__text { - padding-bottom: 20px; + padding: 15px 0 20px; font-size: 14px; } }