基于@vueuse/core + @vue/composition-api 实现多行元素展开/折叠功能
列表查询是很常见的功能,复杂的系统模块会有很多查询条件,默认只展示第一行查询条件是个不错的方案。
产品的方案是百变的,可能会让你一行展示固定数目的查询组件,也可能是根据屏幕宽度动态确定数量。
这个时候就很有必要来一个专门处理展开/折叠功能的组件,专注于展开/折叠功能。内部布局用css控制就行了。
实现方案灵感来至于https://segmentfault.com/a/1190000040030723
基于vue2+ @vueuse/core + @vue/composition-api 实现
废话不多说,直接上代码
1 2 5 <div 6 ref="containerEl" 7 class="collapse-container" 8 :class="{ 9 'is-collapse': isCollapse, 10 'collapse-right-bottom': collapseInRightBottom 11 }" 12 > 13 1415 16361730 31 3218 1928if="isCollapse" name="collapse" v-bind="{ isExpand }"> 20 2721 {{ isExpand ? '收起' : '展开' }} 22 <i 23 :class="isExpand ? 'el-icon-arrow-up' : 'el-icon-arrow-down'" 24 > 25 2629 333534
简单用法
1 <template> 2 <uxCollapse> 3 <div v-for="(item, i) in data" :key="i" class="item-el">{{ item }}div> 4 uxCollapse> 5 template>
1
效果

每个子元素使用 display: inline-block; 布局即可,通过css可灵活控制内部布局。
复杂效果实现

同一页面窗口放大时效果
