Vant中Popover气泡弹出框位置错乱问题解决

 更新时间:2023年06月14日 11:00:50   作者:天問  
这篇文章主要为大家介绍了Vant中Popover气泡弹出框位置错乱问题解决,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

正文

在使用 VantUI 开发 H5 应用时,引入了 Popover 气泡弹出框组件,其中弹出位置参数设置的是 placement="bottom-end",但是最后 Popover 弹出层的位置出现了错乱,没有在指定的位置展示。

Vant && Popover

一、代码展示

<template>
  <div class="head-nav">
    <van-icon size="24"
              class="nav-icon-left"
              name="arrow-left"
              color="#333" />
    <van-popover :offset="[14,10]"  
                 v-model="showPopover"
                 trigger="click"
                 :actions="actions"
                 @select="selectMenu"
                 get-container=".head-nav"
                 placement="bottom-end" >
      <template #reference>
        <van-icon size="24"
                  class="nav-icon-right"
                  name="ellipsis"
                  color="#333" />
      </template>
    </van-popover>
  </div>
</template>
<script>
export default {
  data() {
    return {
      showPopover: false,
      actions: [
        { text: '选项一', icon: 'add-o' },
        { text: '选项二', icon: 'music-o' },
        { text: '选项三', icon: 'more-o' },
      ],
    }
  },
  methods: {
    selectMenu(action, index) {
      console.log(action, index)
    },
  },
}
</script>
<style lang="scss">
  .head-nav {
    width: 100%;
    height: 80px;
    position: fixed;
    left: 0;
    top: 0;
    z-index: 999;
  }
  .nav-icon-left {
    position: absolute;
    left: 30px;
    top: 20px;
  }
  .nav-icon-right {
    position: absolute;
    right: 30px;
    top: 20px;
  }
</style>

二、位置错乱原因

如上图所示,触发元素(按钮)正常情况下是跟随文档流布局,Popover 弹出层的位置会正常展示。但是如果设置了 绝对定位 position: absolute;,脱离了文档流,所以最后弹出的浮层却在别的位置展示。

F12打开控制台,审查元素发现触发元素外层包裹的 .van-popover__wrapper 宽高为 0x0 ,位置也和内部元素不在一起。

三、解决办法

去掉触发元素(按钮)的定位,将定位加到 .van-popover__wrapper 包裹元素上。修改样式,如下:

  .nav-icon-right {
    /*position: absolute;*/
    /*right: 30px;*/
    /*top: 20px;*/
  }
  .van-popover__wrapper {
    position: absolute;
    right: 30px;
    top: 20px;
  }

完美解决,耐思 _

以上就是Vant中Popover气泡弹出框位置错乱问题解决的详细内容,更多关于Vant Popover弹出框位置错乱的资料请关注脚本之家其它相关文章!

相关文章

  • Vue2使用TailwindCSS方法及遇到问题小结

    Vue2使用TailwindCSS方法及遇到问题小结

    Tailwind CSS是一个全新的、可定制的CSS框架,它提供了一系列的CSS类,用于构建现代化的Web界面,这篇文章主要介绍了Vue2使用TailwindCSS方法及遇到问题小结,需要的朋友可以参考下
    2024-03-03
  • Vue指令之v-for的使用说明

    Vue指令之v-for的使用说明

    这篇文章主要介绍了Vue指令之v-for的使用说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • vue+spring boot实现校验码功能

    vue+spring boot实现校验码功能

    这篇文章主要为大家详细介绍了vue+spring boot实现校验码功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-05-05
  • VUEX-action可以修改state吗

    VUEX-action可以修改state吗

    这篇文章主要介绍了VUEX-action可以修改state吗,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • 基于vue cli重构多页面脚手架过程详解

    基于vue cli重构多页面脚手架过程详解

    本文分步骤给大家介绍了基于vue cli重构多页面脚手架过程,非常不错,具有参考借鉴价值,需要的朋友参考下
    2018-01-01
  • vue router 跳转后回到顶部的实例

    vue router 跳转后回到顶部的实例

    今天小编就为大家分享一篇vue router 跳转后回到顶部的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • Vue3 + elementplus实现表单验证+上传图片+ 防止表单重复提交功能

    Vue3 + elementplus实现表单验证+上传图片+ 防止表单重复提交功能

    这篇文章主要介绍了Vue3 + elementplus 表单验证+上传图片+ 防止表单重复提交,本文给大家展示效果图和完整代码,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-10-10
  • Vue中created和mounted使用详解

    Vue中created和mounted使用详解

    Vue中生命周期包括多个阶段,如created和mounted,每阶段有特定钩子函数,生命周期与浏览器渲染过程密切相关,了解这些可以优化页面渲染和数据处理,created阶段适用于数据初始化,而mounted阶段适合进行DOM操作和页面渲染后的处理
    2024-10-10
  • vue的指令和插值总结(非常详细)

    vue的指令和插值总结(非常详细)

    这篇文章主要给大家介绍了关于vue指令和插值的相关资料,大家应该对指令和插值都不陌生,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-06-06
  • vue3.0+ts引入详细步骤以及语法校验报错问题解决办法

    vue3.0+ts引入详细步骤以及语法校验报错问题解决办法

    Vue 3.0是一个非常流行的JavaScript框架,不仅易于学习和使用,而且可以与许多UI框架集成,下面这篇文章主要给大家介绍了关于vue3.0+ts引入详细步骤以及语法校验报错问题的解决办法,需要的朋友可以参考下
    2024-01-01

最新评论