要实现微信小程序中的折叠功能,可以使用wx:if
或hidden
属性来控制列表的显示与隐藏。同时,可以使用icon
组件来添加指示箭头。
首先,在wxml文件中创建两个List列表,使用一个变量来控制列表的显示与隐藏:
html
<view>
<!-- 列表1 -->
<view class="list">
<view class="header" bindtap="toggleList1">
<text class="title">{{list1Title}}</text>
<icon class="arrow" type="{{list1Hidden ? 'triangle' : 'triangle-down'}}"></icon>
</view>
<view wx:if="{{!list1Hidden}}" class="content">
<!-- 列表1的内容 -->
</view>
</view>
<!-- 列表2 -->
<view class="list">
<view class="header" bindtap="toggleList2">
<text class="title">{{list2Title}}</text>
<icon class="arrow" type="{{list2Hidden ? 'triangle' : 'triangle-down'}}"></icon>
</view>
<view wx:if="{{!list2Hidden}}" class="content">
<!-- 列表2的内容 -->
</view>
</view>
</view>
在js文件中,添加点击事件的处理函数,用来切换列表的显示与隐藏:
javascript
Page({
data: {
list1Hidden: true,
list2Hidden: true,
list1Title: "列表1",
list2Title: "列表2"
},
toggleList1: function () {
this.setData({
list1Hidden: !this.data.list1Hidden
});
},
toggleList2: function () {
this.setData({
list2Hidden: !this.data.list2Hidden
});
}
})
在wxss文件中,可以自定义列表的样式和指示箭头的样式:
css
.list {
background-color: #f5f5f5;
margin-bottom: 10px;
}
.header {
display: flex;
align-items: center;
padding: 10px;
background-color: #fff;
}
.title {
flex: 1;
font-size: 16px;
}
.arrow {
font-size: 20px;
color: #999;
}
这样就实现了一个带折叠功能的微信小程序列表,点击列表的标题即可展开或折叠对应的内容,同时指示箭头也会根据展开或折叠状态进行变化。