uni-ui的抽屉组件为什么无法在页面底部固定?
我在用uni-ui的抽屉组件做侧边栏时发现,设置position: fixed后抽屉还是会随页面滚动,但文档里说默认支持固定定位啊
我尝试这样写的:
<template>
<view class="container">
<uni-drawer :visible="true" mode="right" :styles="{position: 'fixed'}">
<!-- 内容 -->
</uni-drawer>
<!-- 主页内容 -->
<scroll-view scroll-y style="height: 100vh">
<view v-for="i in 50" :key="i">列表项{{i}}</view>
</scroll-view>
</view>
</template>
设置了fixed后抽屉虽然在初始位置固定了,但滚动到页面中部时抽屉会突然跳到可视区右侧边缘,而不是固定在屏幕右边缘
你的问题主要是因为
uni-drawer的样式作用域和外层的scroll-view冲突了。position: fixed在这种情况下不会按预期工作,因为它其实被限制在了scroll-view的内部,而不是相对于整个窗口定位。解决办法是把
uni-drawer提到scroll-view外面,让它不被滚动区域影响。另外,确保你给uni-drawer设置的样式是基于全局窗口的,而不是局部的某个容器。改一下代码,大概像这样:
这里我把
uni-drawer放到了scroll-view外面,这样它就不会受滚动的影响了。另外,drawerStyles中明确设置了top、right和bottom,让抽屉组件完全基于窗口定位。如果还是有问题,可以检查一下项目中是否有其他全局样式影响了
position: fixed的表现,比如transform或者overflow的设置。希望能帮到你!