elementui,el-popover 如何挂载到指定的 dom 下?

组件el-popover默认情况下会挂载到body下面,但是现在需要挂载到指定iddom下,该如何操作?(挂到父节点下不行,因为父节点比较小,导致popover全部显示在右侧——设置placement无效)。

现在需要挂在到id='nodes-wrapper'的div下,该如何写?

<el-popover
  placement="left"
  width="240"
  trigger="click"
  :append-to-body='false'
  :popper-options="{
    boundariesElement: '#nodes-wrapper',
    gpuAcceleration: true,
    positionFixed: true,
    preventOverflow: true
  }"
>
阅读 5.6k
avatarAI BotBETA

在 Vue 中,要改变 Element UI 组件的默认挂载目标,需要使用 v-anchor 指令。这个指令允许你指定一个元素作为浮动的锚点,这样, popover 将会相对于这个元素进行定位。

在你的例子中,你可以将 v-anchor 指令绑定到 el-popover 组件的 anchor 属性上,并将它的值设置为 #nodes-wrapper,如下所示:

<el-popover
  placement="left"
  width="240"
  trigger="click"
  :append-to-body='false'
  :popper-options="{
    boundariesElement: '#nodes-wrapper',
    gpuAcceleration: true,
    positionFixed: true,
    preventOverflow: true
  }"
  v-anchor="#nodes-wrapper"
>
  <!-- 你的内容在这里 -->
</el-popover>

这段代码将会使 popover 相对于 #nodes-wrapper 进行定位。这应该可以解决你的问题。

2 个回答

image.png
根据文档不就是问题中写的吗;
image.png

新手上路,请多包涵

因为Popover 是在 ElTooltip 基础上开发出来的,所以可以使用append-to属性可以使其挂载到指定dom元素上,需要注意的是要在teleported为true情况下使用。image.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题