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