JS实现折叠/展开的手风琴效果
需求场景:如下图

点击红框文字,实现部分form表单项的折叠和展开,效果见下图

其中,绿色框中的内容时需要实现展开/折叠的
直接上代码
<template>
<view>
<view class="collapse" id="collapse">
<!-- 业务代码。。。。 -->
</view>
<view @click="showMore">
<u-icon
:name="openFlag ? 'arrow-up' : 'arrow-down'"
size="28"
style="margin-right: 4rpx"
></u-icon>
{{ openFlag ? "收起" : "展开" }}更多信息
</view>
</view>
</template>
<script>
export default {
data() {
return {
defaultHeight: 0,
openFlag: false,
};
},
methods: {
// 展开其他信息
showMore() {
let liCon = document.getElementById("collapse");
let height = liCon.offsetHeight;
if (height === this.defaultHeight) {
// 展开
liCon.style.height = "auto";
height = liCon.offsetHeight;
liCon.style.height = this.defaultHeight + "px";
let f = document.body.offsetHeight; // 必加
liCon.style.height = height + "px";
} else {
// 收缩
liCon.style.height = this.defaultHeight + "px";
}
this.openFlag = !this.openFlag;
},
},
};
</script>
<style lang="scss" scoped>
.collapse {
height: 0px;
overflow: hidden;
transition: height 0.3s;
}
</style>
如有疑问,欢迎品论区留言!

浙公网安备 33010602011771号