美化左侧div宽度拖拉 按钮
This commit is contained in:
parent
d869b770e3
commit
96186a3b07
@ -14,7 +14,7 @@
|
||||
.header-listtxet{
|
||||
display: none;
|
||||
}
|
||||
.transition-box{
|
||||
.main-right{
|
||||
width: 250px!important;
|
||||
}
|
||||
.tabBar{
|
||||
@ -52,6 +52,9 @@
|
||||
.transition-box{
|
||||
display: none;
|
||||
}
|
||||
.isresize{
|
||||
display: none;
|
||||
}
|
||||
.sousouleft-switch{
|
||||
display: block;
|
||||
}
|
||||
|
@ -1,37 +1,119 @@
|
||||
<template>
|
||||
<div>
|
||||
|
||||
<div style="width: 500px">
|
||||
<tags-input
|
||||
v-model="tagList"
|
||||
:defaulList="defaulList"
|
||||
:listFilter=true
|
||||
placeholder="按enter键创建标签"
|
||||
@tagClose="tagClose"></tags-input>
|
||||
<template>
|
||||
<div class="box" ref="box">
|
||||
<div class="left">
|
||||
<!--左侧div内容-->
|
||||
</div>
|
||||
<div class="resize" title="收缩侧边栏">
|
||||
⋮
|
||||
</div>
|
||||
<div class="mid">
|
||||
<!--右侧div内容-->
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import TagsInput from '../../../components/TagsInput'
|
||||
export default {
|
||||
components: {
|
||||
TagsInput
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
// 子组件返回的list
|
||||
tagList: null,
|
||||
// 付默认值
|
||||
defaulList:[],
|
||||
// 是否去重
|
||||
listFilter:false
|
||||
}
|
||||
name: 'Dashboard',
|
||||
mounted () {
|
||||
this.dragControllerDiv();
|
||||
},
|
||||
methods: {
|
||||
// 标签关闭方法
|
||||
tagClose(tag){
|
||||
console.log(tag)
|
||||
}
|
||||
dragControllerDiv: function () {
|
||||
var resize = document.getElementsByClassName('resize');
|
||||
var left = document.getElementsByClassName('left');
|
||||
var mid = document.getElementsByClassName('mid');
|
||||
var box = document.getElementsByClassName('box');
|
||||
for (let i = 0; i < resize.length; i++) {
|
||||
// 鼠标按下事件
|
||||
resize[i].onmousedown = function (e) {
|
||||
//颜色改变提醒
|
||||
resize[i].style.background = 'red';
|
||||
var startX = e.clientX;
|
||||
console.log("鼠标按下后:"+e.clientX)
|
||||
resize[i].left = resize[i].offsetLeft;
|
||||
console.log("鼠标按下后:"+resize[i].left)
|
||||
console.log("鼠标按下后:"+resize[i].offsetLeft)
|
||||
// 鼠标拖动事件
|
||||
document.onmousemove = function (e) {
|
||||
var endX = e.clientX;
|
||||
var moveLen = resize[i].left + (endX - startX); // (endx-startx)=移动的距离。resize[i].left+移动的距离=左边区域最后的宽度
|
||||
var maxT = box[i].clientWidth - resize[i].offsetWidth; // 容器宽度 - 左边区域的宽度 = 右边区域的宽度
|
||||
|
||||
if (moveLen < 32) moveLen = 32; // 左边区域的最小宽度为32px
|
||||
if (moveLen > maxT - 150) moveLen = maxT - 150; //右边区域最小宽度为150px
|
||||
|
||||
resize[i].style.left = moveLen; // 设置左侧区域的宽度
|
||||
|
||||
for (let j = 0; j < left.length; j++) {
|
||||
left[j].style.width = moveLen + 'px';
|
||||
mid[j].style.width = (box[i].clientWidth - moveLen - 10) + 'px';
|
||||
}
|
||||
};
|
||||
// 鼠标松开事件
|
||||
document.onmouseup = function (evt) {
|
||||
//颜色恢复
|
||||
resize[i].style.background = '#d6d6d6';
|
||||
document.onmousemove = null;
|
||||
document.onmouseup = null;
|
||||
resize[i].releaseCapture && resize[i].releaseCapture(); //当你不在需要继续获得鼠标消息就要应该调用ReleaseCapture()释放掉
|
||||
};
|
||||
resize[i].setCapture && resize[i].setCapture(); //该函数在属于当前线程的指定窗口里设置鼠标捕获
|
||||
return false;
|
||||
};
|
||||
}
|
||||
},
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
/* 拖拽相关样式 */
|
||||
/*包围div样式*/
|
||||
.box {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
margin: 1% 0px;
|
||||
overflow: hidden;
|
||||
box-shadow: -1px 9px 10px 3px rgba(0, 0, 0, 0.11);
|
||||
}
|
||||
/*左侧div样式*/
|
||||
.left {
|
||||
width: calc(32% - 10px); /*左侧初始化宽度*/
|
||||
height: 100%;
|
||||
background: #FFFFFF;
|
||||
float: left;
|
||||
}
|
||||
/*拖拽区div样式*/
|
||||
.resize {
|
||||
cursor: col-resize;
|
||||
float: left;
|
||||
position: relative;
|
||||
top: 45%;
|
||||
background-color: #d6d6d6;
|
||||
border-radius: 5px;
|
||||
margin-top: -10px;
|
||||
width: 10px;
|
||||
height: 50px;
|
||||
background-size: cover;
|
||||
background-position: center;
|
||||
/*z-index: 99999;*/
|
||||
font-size: 32px;
|
||||
color: white;
|
||||
}
|
||||
/*拖拽区鼠标悬停样式*/
|
||||
.resize:hover {
|
||||
color: #444444;
|
||||
}
|
||||
/*右侧div'样式*/
|
||||
.mid {
|
||||
float: left;
|
||||
width: 68%; /*右侧初始化宽度*/
|
||||
height: 100%;
|
||||
background: #fff;
|
||||
box-shadow: -1px 4px 5px 3px rgba(0, 0, 0, 0.11);
|
||||
}
|
||||
|
||||
</style>
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user