Collapse 折叠面板
介绍
将一组内容放置在多个折叠面板中,点击面板的标题可以展开或收缩其内容。
引入
在app.json
或index.json
中引入组件,详细介绍见快速上手。
"usingComponents": {
"van-collapse": "@vant/weapp/collapse/index",
"van-collapse-item": "@vant/weapp/collapse-item/index"
}
代码演示
基础用法
通过value
控制展开的面板列表,activeNames
为数组格式。
<van-collapse value="{{ activeNames }}" bind:change="onChange">
<van-collapse-item title="标题1" name="1">
代码是写出来给人看的,附带能在机器上运行
</van-collapse-item>
<van-collapse-item title="标题2" name="2">
代码是写出来给人看的,附带能在机器上运行
</van-collapse-item>
<van-collapse-item title="标题3" name="3" disabled>
代码是写出来给人看的,附带能在机器上运行
</van-collapse-item>
</van-collapse>
Page({
data: {
activeNames: ['1'],
},
onChange(event) {
this.setData({
activeNames: event.detail,
});
},
});
手风琴
通过accordion
可以设置为手风琴模式,最多展开一个面板,此时activeName
为字符串格式。
<van-collapse accordion value="{{ activeName }}" bind:change="onChange">
<van-collapse-item title="标题1" name="1">
代码是写出来给人看的,附带能在机器上运行
</van-collapse-item>
<van-collapse-item title="标题2" name="2">
代码是写出来给人看的,附带能在机器上运行
</van-collapse-item>
<van-collapse-item title="标题3" name="3">
代码是写出来给人看的,附带能在机器上运行
</van-collapse-item>
</van-collapse>
Page({
data: {
activeName: '1',
},
onChange(event) {
this.setData({
activeName: event.detail,
});
},
});
事件监听
van-collapse
提供了 change
, open
和 close
事件。change
事件在面板切换时触发,open
事件在面板展开时触发,close
事件在面板关闭时触发。
<van-collapse
value="{{ activeNames }}"
bind:change="onChange"
bind:open="onOpen"
bind:close="onClose"
>
<van-collapse-item title="标题1" name="1">
代码是写出来给人看的,附带能在机器上运行
</van-collapse-item>
<van-collapse-item title="标题2" name="2">
代码是写出来给人看的,附带能在机器上运行
</van-collapse-item>
<van-collapse-item title="标题3" name="3">
代码是写出来给人看的,附带能在机器上运行
</van-collapse-item>
</van-collapse>
Page({
data: {
activeNames: ['1'],
},
onChange(event) {
this.setData({
activeNames: event.detail,
});
},
onOpen(event) {
Toast(`展开: ${event.detail}`);
},
onClose(event) {
Toast(`关闭: ${event.detail}`);
},
});
自定义标题内容
<van-collapse value="{{ activeNames }}" bind:change="onChange">
<van-collapse-item name="1">
<view slot="title">标题1<van-icon name="question-o" /></view>
代码是写出来给人看的,附带能在机器上运行
</van-collapse-item>
<van-collapse-item title="标题2" name="2" icon="shop-o">
代码是写出来给人看的,附带能在机器上运行
</van-collapse-item>
</van-collapse>
Page({
data: {
activeNames: ['1'],
},
onChange(event) {
this.setData({
activeNames: event.detail,
});
},
});
API
Collapse Props
参数 | 说明 | 类型 | 默认值 |
---|---|---|---|
value | 当前展开面板的 name | 非手风琴模式:(string | number)[] 手风琴模式:string | number | - |
accordion | 是否开启手风琴模式 | boolean | false |
border | 是否显示外边框 | boolean | true |
Collapse Event
事件名 | 说明 | 参数 |
---|---|---|
change | 切换面板时触发 | activeNames: string | Array |
open | 展开面板时触发 | currentName: string | number |
close | 关闭面板时触发 | currentName: string | number |
CollapseItem Props
参数 | 说明 | 类型 | 默认值 |
---|---|---|---|
name | 唯一标识符,默认为索引值 | string | number | index |
title | 标题栏左侧内容 | string | number | - |
size | 标题栏大小,可选值为large | string | - |
icon | 标题栏左侧图标名称或图片链接,可选值见 Icon 组件 | string | - |
value | 标题栏右侧内容 | string | number | - |
label | 标题栏描述信息 | string | - |
border | 是否显示内边框 | boolean | true |
is-link | 是否展示标题栏右侧箭头并开启点击反馈 | boolean | true |
clickable | 是否开启点击反馈 | boolean | false |
disabled | 是否禁用面板 | boolean | false |
CollapseItem Slot
名称 | 说明 |
---|---|
- | 面板内容 |
value | 自定义显示内容 |
icon | 自定义icon |
title | 自定义title |
right-icon | 自定义右侧按钮,默认是arrow |
Collapse 外部样式类
类名 | 说明 |
---|---|
custom-class | 根节点样式类 |
CollapseItem 外部样式类
类名 | 说明 |
---|---|
custom-class | 根节点样式类 |
content-class | 内容样式类 |