"问题描述 点击下拉框,出现下拉选项,使用鼠标滚轮滚动。下拉组件位置移动后,下拉选项依旧停靠在原来的位置。 截图 [图片] [图片]"
点击下拉框,出现下拉选项,使用鼠标滚轮滚动。下拉组件位置移动后,下拉选项依旧停靠在原来的位置。
因为 q-select 在 pc 端使用的是 q-menu 组件来展示下拉框,q-menu 组件的定位是通过侦听 window 的滚动或者是自定义滚动的元素来更新位置的。在我的页面上,页面的滚动不是在 window 上的,所以不能正确触发更新位置。
找到问题原因了,记录一下。
因为 q-select 在 pc 端使用的是 q-menu 组件来展示下拉框,q-menu 组件的定位是通过侦听 window 的滚动或者是自定义滚动的元素来更新位置的。在我的页面上,页面的滚动不是在 window 上的,所以不能正确触发更新位置。
解决办法
1. 重写 q-select 组件把滚动的 div 传给 q-menu
2. 重构页面布局,滚动部分触发 window 的滚动