Vue ElementUI el-collapse 改造:手风琴
一、源码<template><div class="left-tree"><el-collapse class="tree-collapse" accordion v-model="activeName"><el-collapse-item ref="clooapseItem" v-for="(tree, i) of treeNames" :name="i
·
一、背景
项目需要,手风琴高度要占满整个页面的高度,并随页面窗口变化而变化。
二、源码
<template>
<div class="collapse-page">
<el-collapse class="collapse-div tree-collapse" accordion v-model="activeName">
<el-collapse-item ref="clooapseItem" v-for="(item, i) of collapseList" :name="i.toString()" :key="i" :title="collapseList[i]" >
<!-- 自定义内容 -->
<!-- <h1 v-for="row of 100" :name="row" :key="row">{{row}}</h1> -->
</el-collapse-item>
</el-collapse>
</div>
</template>
<script>
export default {
data() {
return {
// 默认打开的面板
activeName: '0',
// 树名
collapseList: [
'手风琴 01',
'手风琴 02',
'手风琴 03',
'手风琴 04',
'手风琴 05'
]
}
},
methods: {
},
mounted() {
// 初始化
handlerDiv(this.collapseList);
//窗口变化时
window.addEventListener('resize', () => {
handlerDiv(this.collapseList);
});
/**
* 重置高度
* @param list 折叠列表
*/
function handlerDiv(list) {
let maxHeight = document.documentElement.clientHeight - (50 * list.length) + 'px';
let classList = document.getElementsByClassName('el-collapse-item__content');
for (let i = 0, len = classList.length; i < len; i++) {
classList[i].style.height = maxHeight;
}
}
}
}
</script>
<style lang="stylus">
.collapse-page {
background:#ccc;
overflow:hidden;
.collapse-div {
width: 250px;
.el-icon-arrow-right {
transform: rotate(180deg);
}
.el-icon-arrow-right:before {
content: url('../assets/images/expand.png');
}
// 标题
.el-collapse-item__header {
padding-left: 5px;
background: rgb(230,235,241);
border-bottom: solid white 1px;
font-weight: bolder;
}
// 选中
.is-active {
background: rgb(197, 227,255);
transform: rotate(0deg);
}
.el-collapse-item__wrap {
overflow: auto;
}
.el-collapse-item__content {
padding-bottom: 0;
// background: rgb(246, 246, 246);
}
}
}
</style>
三、效果
更多推荐
已为社区贡献33条内容
所有评论(0)