美化左侧div宽度拖拉 按钮
This commit is contained in:
parent
d869b770e3
commit
96186a3b07
@ -14,7 +14,7 @@
|
|||||||
.header-listtxet{
|
.header-listtxet{
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
.transition-box{
|
.main-right{
|
||||||
width: 250px!important;
|
width: 250px!important;
|
||||||
}
|
}
|
||||||
.tabBar{
|
.tabBar{
|
||||||
@ -52,6 +52,9 @@
|
|||||||
.transition-box{
|
.transition-box{
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
.isresize{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
.sousouleft-switch{
|
.sousouleft-switch{
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
@ -1,37 +1,119 @@
|
|||||||
<template>
|
|
||||||
<div>
|
|
||||||
|
|
||||||
<div style="width: 500px">
|
<template>
|
||||||
<tags-input
|
<div class="box" ref="box">
|
||||||
v-model="tagList"
|
<div class="left">
|
||||||
:defaulList="defaulList"
|
<!--左侧div内容-->
|
||||||
:listFilter=true
|
</div>
|
||||||
placeholder="按enter键创建标签"
|
<div class="resize" title="收缩侧边栏">
|
||||||
@tagClose="tagClose"></tags-input>
|
⋮
|
||||||
|
</div>
|
||||||
|
<div class="mid">
|
||||||
|
<!--右侧div内容-->
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import TagsInput from '../../../components/TagsInput'
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
name: 'Dashboard',
|
||||||
TagsInput
|
mounted () {
|
||||||
},
|
this.dragControllerDiv();
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
// 子组件返回的list
|
|
||||||
tagList: null,
|
|
||||||
// 付默认值
|
|
||||||
defaulList:[],
|
|
||||||
// 是否去重
|
|
||||||
listFilter:false
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// 标签关闭方法
|
dragControllerDiv: function () {
|
||||||
tagClose(tag){
|
var resize = document.getElementsByClassName('resize');
|
||||||
console.log(tag)
|
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>
|
</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