# Drawer 抽屉

概述

Drawer 抽屉,抽屉式导航,用于展示侧滑菜单,侧滑导航。

# 引入

以下介绍两种常用的引入方式。
第一种:在页面json文件中引入册
{
  "navigationBarTitleText": "抽屉",
  "usingComponents": {
    "fui-drawer": "/components/firstui/fui-drawer/fui-drawer"
  }
}
1
2
3
4
5
6
第二种:在根目录app.json文件中全局引入
"usingComponents": {
    "fui-drawer": "components/firstui/fui-drawer/fui-drawer"
}
1
2
3

# 代码演示

部分示例演示,完整使用请参考示例程序以及文档API。
基础使用

通过 show 属性控制是否显示抽屉,bindclose 事件为当 maskClosable 属性值为true时点击遮罩回调事件,通过设置 show 属性为false来关闭抽屉。

当内容较多需要滚动时,可在组件内部使用 scroll-view 来达到内容滚动效果。

 <fui-drawer show="{{show}}" bindclose="closeDrawer" data-type="1">
    <scroll-view scroll-y class="fui-scroll__view">
      <view>
        <fui-list-cell arrow wx:for="{{itemList}}" wx:key="index">
          item{{index+1}}
        </fui-list-cell>
      </view>
    </scroll-view>
  </fui-drawer>
1
2
3
4
5
6
7
8
9
/* 自定义内容区样式需自行控制 */
.fui-scroll__view {
	width: 520rpx;
	flex: 1;
	overflow: hidden;
}
1
2
3
4
5
6
data:{
	show: false,
	itemList: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
},
//调用此方法显示抽屉
showDrawer(type) {
	this.setData({
		show: true
	})
},
closeDrawer(type) {
	this.setData({
		show: false
	 })
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
从左往右开

通过 show 属性控制是否显示抽屉,direction 属性控制抽屉打开方向,maskClosable 属性设置是否可点击遮罩关闭抽屉(值为true时点击后回调事件为@close)。

当内容较多需要滚动时,可在组件内部使用 scroll-view 来达到内容滚动效果。

<fui-drawer show="{{show}}" direction="left" maskClosable="{{false}}">
    <view class="fui-scroll__view">
      <view class="fui-title">左侧菜单栏</view>
      <scroll-view scroll-y style="height: 720rpx;">
        <view>
          <fui-list-cell wx:for="{{itemList}}" wx:key="index">
            item{{index+1}}
          </fui-list-cell>
        </view>
      </scroll-view>
      <view class="fui-btn__box">
        <fui-button type="warning" width="400rpx" height="84rpx" text="关闭菜单栏" bold bindclick="closeDrawer" data-type="2">
        </fui-button>
      </view>
    </view>
  </fui-drawer>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
.fui-scroll__view {
	width: 520rpx;
	flex: 1;
	overflow: hidden;
}

.fui-title {
	padding: 64rpx 32rpx 32rpx;
	box-sizing: border-box;
	font-weight: bold;
}

.fui-btn__box {
	padding: 40rpx 0;
	display: flex;
	justify-content: center;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
data:{
	show: false,
	itemList: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
},
//调用此方法显示抽屉
showDrawer(type) {
	this.setData({
		show: true
	})
},
closeDrawer(type) {
	this.setData({
		show: false
	 })
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

TIP

如果自定义内容中包含输入框类组件,抽屉未显示时可能无法隐藏输入框,需要自行使用 wx:if 对输入框进行隐藏。

# Slots

插槽名称 说明
default 自定义显示内容

# Props

属性名 类型 说明 默认值 其他说明
show Boolean 是否显示抽屉 false -
direction String 抽屉打开方向,可选值:left,right right -
background String 抽屉背景颜色 #fff -
zIndex Number, String 抽屉z-index值 996 -
maskClosable Boolean 点击遮罩 是否可关闭 true -
maskBackground String 遮罩背景色 rgba(0,0,0,.6) -
radius V1.8.0+ Number, String 外层容器圆角值,左侧打开时为右侧圆角,右侧打开时为左侧圆角 0 -

# Events

事件名 说明 回调参数
@close 点击遮罩层(maskClosable=true)时触发 -

示例预览

Last Updated: 10/17/2023, 6:10:12 PM