Back to Vant Weapp

Collapse 折叠面板

packages/collapse/README.md

1.11.75.7 KB
Original Source

Collapse 折叠面板

介绍

将一组内容放置在多个折叠面板中,点击面板的标题可以展开或收缩其内容。

引入

app.jsonindex.json中引入组件,详细介绍见快速上手

json
"usingComponents": {
  "van-collapse": "@vant/weapp/collapse/index",
  "van-collapse-item": "@vant/weapp/collapse-item/index"
}

代码演示

基础用法

通过value控制展开的面板列表,activeNames为数组格式。

html
<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>
javascript
Page({
  data: {
    activeNames: ['1'],
  },
  onChange(event) {
    this.setData({
      activeNames: event.detail,
    });
  },
});

手风琴

通过accordion可以设置为手风琴模式,最多展开一个面板,此时activeName为字符串格式。

html
<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>
javascript
Page({
  data: {
    activeName: '1',
  },
  onChange(event) {
    this.setData({
      activeName: event.detail,
    });
  },
});

事件监听

van-collapse 提供了 change, openclose 事件。change 事件在面板切换时触发,open 事件在面板展开时触发,close 事件在面板关闭时触发。

html
<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>
javascript
Page({
  data: {
    activeNames: ['1'],
  },
  onChange(event) {
    this.setData({
      activeNames: event.detail,
    });
  },
  onOpen(event) {
    Toast(`展开: ${event.detail}`);
  },
  onClose(event) {
    Toast(`关闭: ${event.detail}`);
  },
});

自定义标题内容

html
<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>
javascript
Page({
  data: {
    activeNames: ['1'],
  },
  onChange(event) {
    this.setData({
      activeNames: event.detail,
    });
  },
});

API

Collapse Props

参数说明类型默认值
value当前展开面板的 name非手风琴模式:(string | number)[]
手风琴模式:string | number-
accordion是否开启手风琴模式booleanfalse
border是否显示外边框booleantrue

Collapse Event

事件名说明参数
change切换面板时触发activeNames: string | Array
open展开面板时触发currentName: string | number
close关闭面板时触发currentName: string | number

CollapseItem Props

参数说明类型默认值
name唯一标识符,默认为索引值string | numberindex
title标题栏左侧内容string | number-
size标题栏大小,可选值为largestring-
icon标题栏左侧图标名称或图片链接,可选值见 Icon 组件string-
value标题栏右侧内容string | number-
label标题栏描述信息string-
border是否显示内边框booleantrue
is-link是否展示标题栏右侧箭头并开启点击反馈booleantrue
clickable是否开启点击反馈booleanfalse
disabled是否禁用面板booleanfalse

CollapseItem Slot

名称说明
-面板内容
value自定义显示内容
icon自定义icon
title自定义title
right-icon自定义右侧按钮,默认是arrow, 需要将 is-link 设置为 false, 才会生效

Collapse 外部样式类

类名说明
custom-class根节点样式类

CollapseItem 外部样式类

类名说明
custom-class根节点样式类
content-class内容样式类