折叠面板
介绍
将一组内容放置在多个折叠面板中,点击面板的标题可以展开或收缩其内容。
#引入
在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 |
内容样式类 |
浙公网安备 33010602011771号