uni-app Drawer 抽屉组件内容超出后不能设置滚动

发布于 1周前 作者 h691938207 来自 Uni-App

uni-app Drawer 抽屉组件内容超出后不能设置滚动

问题描述

该抽屉插件有个很大的问题

内容超出后为什么不能滚动?即使是用css来设置overflow:scroll同样不能滚动,这点不符合义务需求

4 回复

同上,有没有什么解决办法???


在抽屉里面使用scroll-view,注意该滚动组件要加固定高度

回复 九涯: 用了scroll-view也不行啊 还有其他的解决办法吗?从uni-popup换到了uni-drawer 在手机端还是无法滚动

在uni-app中,Drawer 组件(抽屉组件)通常用于从屏幕边缘滑出的面板,用于显示附加内容或操作。如果抽屉组件的内容超出了其可视区域,默认情况下可能不会自动启用滚动。为了实现内容超出后滚动的效果,你可以通过CSS样式来自定义抽屉组件的滚动行为。

以下是一个如何在uni-app中设置Drawer组件内容超出后滚动的示例:

1. 创建Drawer组件

首先,在你的页面或组件中引入并使用uni-uiDrawer组件(如果使用的是uni-ui库,否则自行实现Drawer组件)。

<template>
  <view>
    <button @click="showDrawer = true">打开抽屉</button>
    <uni-drawer
      v-model="showDrawer"
      direction="rtl"
      :mask-click-close="true"
    >
      <view class="drawer-content">
        <!-- 抽屉内容 -->
        <view v-for="i in 50" :key="i">这是一行内容 {{ i }}</view>
      </view>
    </uni-drawer>
  </view>
</template>

<script>
export default {
  data() {
    return {
      showDrawer: false
    };
  }
};
</script>

2. 添加CSS样式

接下来,为抽屉内容添加一个CSS类,设置其高度和溢出行为:

<style scoped>
.drawer-content {
  height: 100%; /* 或者设置一个固定高度,根据需要调整 */
  overflow-y: auto; /* 启用垂直滚动 */
  -webkit-overflow-scrolling: touch; /* 在iOS设备上启用流畅滚动 */
  padding: 16px; /* 可选,增加内边距 */
  box-sizing: border-box; /* 包括内边距和边框在内计算元素的总宽度和高度 */
}
</style>

3. 运行并测试

保存代码并在uni-app中运行项目。点击按钮打开抽屉,如果内容超出了抽屉的可视区域,你应该能够看到滚动条出现并能够滚动查看隐藏的内容。

注意事项

  • 确保你的uni-app版本和uni-ui库(如果使用)是最新的,以避免潜在的兼容性问题。
  • 如果使用的是自定义的Drawer组件而不是uni-ui库中的组件,确保你的自定义组件正确处理了滚动逻辑。
  • 根据实际设计需求调整.drawer-content的高度和样式。

通过上述步骤,你应该能够在uni-app中实现Drawer组件内容超出后滚动的效果。

回到顶部