Vue3, 页面左右2栏布局,用vue-resizer.页面效果如下图。
安装
npm i vue-resizer
引入
import { DragCol, DragRow, ResizeCol, ResizeRow, Resize } from 'vue-resizer'
<DragCol height="100%" width="100%" :leftPercent="15">
<template #left>
// 左侧内容
<div class="left_tree">
...省略
</div>
</div>
</template>
<template #right>
// 右侧内容省略
...
</template>
</DragCol>
自定义样式
<style>
.drager_col {
background-color: #fff !important;
height: 100vh !important;
// 改变滑块列的样式
.slider_col {
background-color: #f8f8f8 !important;
}
.slider_col:hover {
background-color: #f8f8f8 !important;
}
.slider_col:activate {
background-color: #f8f8f8 !important;
}
}
</style>
// 注意左右2列布局宽度不要写死,不然没法拖动的时候自适应宽度
<style lang="less" scoped>
// 设置左列宽度100% 但是默认只有15%的宽度:leftPercent="15"
.left_tree {
width: 100%;
}
PS: 我按照官网那样定义props给width,height没有生效,始终都是400px,但是又不能强制写死宽度!important,那样拖动就改变不了宽度了,所以没有用props定义属性,而是这种方式