简单封装toast提示效果

一般在前端构建页面时,会进行弹窗,提示条,loading效果等方法的全局封装,在ant.design框架未出现之前,都还是自己进行封装的,只是最近想整理博客,想起来这部分内容还是想着放上来,也许会有人需要;本人现在也是使用ant.design较多,毕竟大厂开源,使用也很方便,为开发省了很多时间;

/* loading效果 */
export const bie = {
  /**
   * loading 效果
   *
   * 使用方法:出现:bie.loading(true); 消失:bie.loading(false);
   * */
  loading: (_switch) => {
    const html = '<div class="bie-loading">' +
      '<div class="fa fa-loading" id="loader-container">' +
      '<p id="loadingText">loading</p>' +
      '</div>' +
      '</div>';
    if (document.getElementsByClassName('bie-loading').length < 1) {
      document.getElementById('root').insertAdjacentHTML('afterend', html);
    }
    if (_switch) {
      document.getElementsByClassName('bie-loading')[0].style.display = 'flex';
      document.getElementsByClassName('fa-loading')[0].style.marginTop = (document.body.clientHeight / 2) - 50;
    } else {
      document.getElementsByClassName('bie-loading')[0].style.display = 'none';
    }
  },


  /**
   * toast 效果
   *
   * 使用案例 bie.toast(true, '<p style="text-align: center">第一行展示效果!<br />第二行展示效果!</p>', 3000);
   * */
  toast: (_switch, content, timer) => {
    const htmlToast = '<div class="bie-toast">' +
      '<div class="fa fa-toast">' + content +
      '</div>' +
      '</div>';
    if (document.getElementsByClassName('bie-toast').length < 1) {
      document.getElementById('root').insertAdjacentHTML('afterend', htmlToast);
    }
    if (_switch) {
      document.getElementsByClassName('bie-toast')[0].style.display = 'flex';
      document.getElementsByClassName('fa-toast')[0].style.marginTop = (document.body.clientHeight / 2) - 50;
      setTimeout(() => {
        document.getElementsByClassName('bie-toast')[0].style.display = 'none';
      }, timer || 1500);
    } else {
      document.getElementsByClassName('bie-toast')[0].style.display = 'none';
    }
  }
};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 UniApp 中封装一个 Toast 组件非常简单,可以按照以下步骤进行操作: 1. 创建一个新的 .vue 文件,用于封装 Toast 组件。 2. 在该文件中,定义一个 template(模板)来展示 Toast 内容,例如: ```html <template> <div class="toast">{{ message }}</div> </template> ``` 3. 在该文件中,使用 props 来接收 Toast 组件的参数,例如: ```javascript <script> export default { props: { message: String } } </script> ``` 4. 使用 CSS 样式来美化 Toast 组件的外观,例如: ```css <style scoped> .toast { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); padding: 10px 20px; background-color: rgba(0, 0, 0, 0.8); color: #fff; border-radius: 4px; } </style> ``` 5. 在需要使用 Toast 的页面或组件中,引入并注册 Toast 组件。例如,在 App.vue 中注册: ```javascript <template> <div> <toast :message="toastMessage" v-if="showToast"></toast> <!-- 其他内容 --> </div> </template> <script> import Toast from '@/components/Toast.vue' export default { components: { Toast }, data() { return { showToast: false, toastMessage: '' } }, methods: { showToast(message) { this.toastMessage = message this.showToast = true // 设置一定时间后关闭 Toast setTimeout(() => { this.showToast = false }, 2000) } } } </script> ``` 6. 在需要弹出 Toast 的地方,调用 showToast 方法,并传入相应的消息: ```javascript this.showToast('Hello, UniApp!') ``` 这样,你就成功地封装了一个简单Toast 组件,在需要时可以随时调用并显示相应的提示信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值