FriedRiceNoodles / banana-ui

基于Web Components,跨框架可用的现代化组件库。https://banana-ui.com
https://banana-ui.com
MIT License
88 stars 10 forks source link

dropdown 组件 bug #121

Closed wfxs2012 closed 7 months ago

wfxs2012 commented 7 months ago

错误描述:
使用 b-dropdown 组件 弹出菜单位置出现错误

代码如下:

 <b-dropdown trigger-action="click">
                    <b-button>Click me!</b-button>
                    <b-menu slot="drop" style="max-width: 200px;">
                        <b-menu-item>Option 1</b-menu-item>
                        <b-menu-item>Option 2</b-menu-item>
                        <b-menu-item>Option 3</b-menu-item>
                        <b-menu-item>Option 4</b-menu-item>
                        <b-menu-item>Option 5</b-menu-item>
                        <b-divider></b-divider>
                        <b-menu-item>Option A</b-menu-item>
                        <b-menu-item>Option B</b-menu-item>
                    </b-menu>
   </b-dropdown>

截图: image

浏览器:chrome 版本 123.0.6312.106

pachage.json

 "dependencies": {
    "@banana-ui/banana": "^1.17.10",
    "@lit-labs/context": "^0.5.1",
    "@lit-labs/router": "^0.1.3",
    "@popperjs/core": "^2.11.8",
    "lit": "^3.1.2",
    "lucide": "^0.365.0",

  },
  "devDependencies": {
    "autoprefixer": "^10.4.19",
    "postcss": "^8.4.38",
    "tailwindcss": "^3.4.3",
    "typescript": "^5.2.2",
    "vite": "^5.2.7"
  }
FriedRiceNoodles commented 7 months ago

尝试了一下在我的开发环境下没复现出来,待会我会试着把依赖项的版本锁定成你提供的版本号。 另外如果可以的话,或许能在codepen或stackblitz提供一个可复现的链接吗。感谢♪(・ω・)ノ

FriedRiceNoodles commented 7 months ago

复现条件应该是,展开dropdown后浏览器窗口resize,这个问题应该是调用floating-ui的配置没有设置好。

wfxs2012 commented 7 months ago

我写了个demo 但奇怪的是问题没有出现 https://stackblitz.com/edit/vitejs-vite-yqx1xm?file=src%2Fmy-element.ts

结构与demo中一样 渲染的区域就如下图

image

我的解决方案

 static styles = css`
      b-dropdown::part(drop) {
        position: fixed;
      }
`

所以我就很奇怪为什么demo中就没有这个问题

FriedRiceNoodles commented 7 months ago

我写了个demo 但奇怪的是问题没有出现 https://stackblitz.com/edit/vitejs-vite-yqx1xm?file=src%2Fmy-element.ts

结构与demo中一样 渲染的区域就如下图

image

我的解决方案

 static styles = css`
      b-dropdown::part(drop) {
        position: fixed;
      }
`

所以我就很奇怪为什么demo中就没有这个问题

如果触发条件是我说的那样,那这个问题在几个小时前发布的最新版本中已经被修复了。