如何给popover页面加一个loading的遮罩?

在popover页面进行操作,点击按钮后,想加一个遮罩层(类似显示【加载中】),让画面的上所有按钮在加载的这段时间内不可点击。该如何实现?

在popover的父页面加遮罩成功了,但是没有把popover页面也给罩住,所以那个方案暂时不行。

阅读 3.9k
5 个回答

如果使用的是vue框架,应该在点击按钮的时候调用this.$loading(),然后关闭用this.$loading().close()就可以吧

新手上路,请多包涵

使用v-loading指令即可实现

<el-popover>
  <div v-loading="loading">
  这是你的自定义pop内容
    <el-button @click="loading = true">加载</el-button>
  <div>
</el-popover> 

vue的话在最外面加个loading页面,状态放store控制。
这样有点麻烦,简化下可以在请求拦截那里去控制这个状态,请求那里加个参数控制要不要显示loading

loading 没有覆盖所有元素,意味着遮罩层和 popover 不在同一层级,或者是 loading 的 z-index 值小于 popover,通常使用组件库自带的 loading 不会存在这种问题。

本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。
在popover的父页面加遮罩成功了,但是没有把popover页面也给罩住

看起来像是遮罩层的 z-index 没有 popover 的大,所以没有盖上。


如果使用了 popover 出来时,数据已经完善,只是你想加个额外的 loading,那可以使用 element-ui 的 v-loading。

如果数据是 popover 弹出时同步加载,那数据加载后往往需要重新渲染弹出框,不然弹出框可能会撑成到奇怪的位置。那就得控制在 loading 结束后,重新触发一次弹出框
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题