element-plus踩坑,popover+取色器会选不中 消失

81 阅读1分钟

element-plus踩坑,popover+取色器会选不中 消失

问题场景:鼠标移动到按钮上,显示气泡框,气泡框里面包含取色器,当鼠标移动到取色器画布上时,取色器和气泡框会一起消失

解决方法:在取色器上添加 :teleported=false

teleported :控制是否将颜色选择器的DOM结构插入到 body 标签下,默认是 true,这里设置为 false 表示保留在父级元素内。

部分示例代码:

  <el-popover placement="bottom" title="主题设置" :width="300" trigger="click">
    <!-- 表单元素 -->
    <el-form>
      <el-form-item label="主题颜色">
        <el-color-picker
          @change="setColor"
          v-model="color"
          size="small"
          show-alpha
          :predefine="predefineColors"
          :teleported="false"
        />
      </el-form-item>
      <el-form-item label="暗黑模式">
        <el-switch
          @change="changeDark"
          v-model="dark"
          class="mt-2"
          style="margin-left: 24px"
          inline-prompt
          active-icon="MoonNight"
          inactive-icon="Sunny"
        />
      </el-form-item>
    </el-form>
    <template #reference>
      <el-button size="small" icon="Setting" type="primary" circle></el-button>
    </template>
  </el-popover>

奇怪的点:为什么移动到子 组件 上,父组件还会消失?