vue實(shí)現(xiàn)拖動(dòng)調(diào)整左右兩側(cè)容器大小
本文實(shí)例為大家分享了vue實(shí)現(xiàn)拖動(dòng)調(diào)整左右兩側(cè)容器大小的具體代碼,供大家參考,具體內(nèi)容如下

頁(yè)面布局
<template> ? ? <a-layout class="width-auto" id="product"> ? ? ? ? <div class="content"> ? ? ? ? ? ? <div id="left" class="left"> ? ? ? ? ? ? 左側(cè) ? ? ? ? ? ? </div> ? ? ? ? ? ? <div id="line" class="resize-line"></div> ? ? ? ? ? ? <div id="right" class="right"> ? ? ? ? ? ? 右側(cè) ? ? ? ? ? ? </div> ? ? ? ? </div> ? ?</a-layout> ? ? ? ?? ?</template>
拖拽方法
drapContent() {
? ? // 獲取 左邊區(qū)域 的 寬度
? ? let left = document.getElementById('left');
? ? // 獲取 移動(dòng)區(qū)域 的 寬度
? ? let line = document.getElementById('line');
? ? // 獲取 右邊區(qū)域 的 寬度
? ? let right = document.getElementById('right');
? ? // 移動(dòng)區(qū)域鼠標(biāo)移入事件
? ? line.onmousedown = function(e) {
? ? ? ? // 移動(dòng)的距離
? ? ? ? let lineLeft = e.clientX;
? ? ? ? document.onmousemove = function(e) {
? ? ? ? ? ? // 移動(dòng)的位置 (側(cè)邊欄的寬度 + 移動(dòng)的寬度)
? ? ? ? ? ? let diffVal = 276 + (e.clientX -lineLeft);
? ? ? ? ? ? // 移動(dòng)區(qū)間的范圍 [276, 740]
? ? ? ? ? ? if(diffVal >= 276 && diffVal <= 840) {
? ? ? ? ? ? ? ? // 移動(dòng)區(qū)域距離左邊的距離
? ? ? ? ? ? ? ? line.style.left = diffVal+'px';
? ? ? ? ? ? ? ? // 左邊縮放的寬度
? ? ? ? ? ? ? ? left.style.width = diffVal +'px';
? ? ? ? ? ? ? ? // 右邊改變后的寬度 (改變后的寬度要加上移動(dòng)區(qū)域的寬度)
? ? ? ? ? ? ? ? right.style.width = document.getElementById('product').clientWidth - (diffVal + 16) +'px';
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? document.onmouseup = function() {
? ? ? ? ? ? document.onmousemove = null;
? ? ? ? ? ? document.onmouseup = null;
? ? ? ? }
? ? }
}在vue里面使用記得將方法在mounted中調(diào)用一下:

樣式
.content {
? ? display: flex;
? ? width: 100%;
? ? height: 100%;
}
.left {
? ? width: 260px;
? ? height: 100%;
}
.resize-line {
? ? /*鼠標(biāo)移入顯示左右箭頭*/
? ? cursor: ew-resize;
? ? width: 16px;
? ? min-width: 16px;
? ? max-width: 16px;
? ? background-color: transparent;
}
.right {
? ? width: calc(100% - 276px);
? ? max-width: calc(100% - 276px);
? ? user-select: none;
}
.ant-layout {
? ? height: calc(100vh - 181px);
}
:deep(.top-search .ant-form-item label) {
? ? min-width: 72px;
}
:deep(.ant-layout-sider) {
? ? flex: 0 0 100%;
? ? ?max-width: 100% !important;
? ? ?min-width: 260px !important;
? ? width: 100% !important;
? ? user-select: none;
}
.width-auto .tree-layout-sider {
? ? height: calc(100vh - 181px);
? ? overflow-x: hidden;
? ? overflow-y: auto;
? ? padding-left: 8px !important;
? ? padding-right: 0 !important;
}
.width-auto li li .ant-tree-title {
? ? width: 100% !important;
}
:deep(.ant-tree.ant-tree-block-node li .ant-tree-node-content-wrapper) {
? ? overflow: hidden;
? ? text-overflow: ellipsis;
? ? word-break: break-word;
}以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
vue3集成Element-Plus之全局導(dǎo)入和按需導(dǎo)入
這篇文章主要給大家介紹了關(guān)于vue3集成Element-Plus之全局導(dǎo)入和按需導(dǎo)入的相關(guān)資料,element-plus正是element-ui針對(duì)于vue3開發(fā)的一個(gè)UI組件庫(kù),?它的使用方式和很多其他的組件庫(kù)是一樣的,需要的朋友可以參考下2023-07-07
vue項(xiàng)目打包之后接口出現(xiàn)錯(cuò)誤的問(wèn)題及解決
這篇文章主要介紹了vue項(xiàng)目打包之后接口出現(xiàn)錯(cuò)誤的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04
Ant Design Vue table組件如何自定義分頁(yè)器
這篇文章主要介紹了Ant Design Vue table組件如何自定義分頁(yè)器問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04
vue中el-table實(shí)現(xiàn)穿梭框(數(shù)據(jù)可以上移下移)
本文主要介紹了vue中el-table實(shí)現(xiàn)穿梭框(數(shù)據(jù)可以上移下移),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06
vue項(xiàng)目運(yùn)行npm?install報(bào)錯(cuò)問(wèn)題及解決
這篇文章主要介紹了vue項(xiàng)目運(yùn)行npm?install報(bào)錯(cuò)問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08
vue3.0語(yǔ)法糖內(nèi)的defineProps及defineEmits解析
這篇文章主要介紹了vue3.0語(yǔ)法糖內(nèi)的defineProps及defineEmits解析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04

