【VUE】拖动侧边栏以便自由调整左右两侧的宽度

news2024/10/6 22:31:34
  1. 效果
    (1)拖动前
    在这里插入图片描述
    (2)拖动后
    在这里插入图片描述

  2. 主要代码

<template>
	<el-row class="contnet" :gutter="20">
		// 1. 左侧树
		<el-col id="left-tree" class="left-tree" :offset="0" :span="6">
			// 目录树(不是该文章的主要解析项,不多介绍)
			<Tree :height="$baseTableHeight(1) - 50"/>
			// 2. 中间拖动栏
			<div id="resize" class="resize" title="收缩侧边栏"></div>
		</el-col>
		// 3. 右侧内容
		<el-col id="right-content" class="right-content" :offset="0" :span="18">
			<el-table ref="table" border :data="list" :height="$baseTableHeight(1)" row-key="id" style="width: 100%">
				<el-table-column type="selection" width="55" />
              	<el-table-column align="center" label="#" width="55">
                	<template #default="{ $index }">
                  		{{ $index + 1 }}
                	</template>
                </el-table-column>
                <el-table-column label="文件名称" prop="originalName" />
			</el-table>
		</el-col>
	</el-row>
</template>

<script>
  import TreeVue from '@/component/Tree.vue'
  export default {
    components: { TreeVue },
    data() {
      return {
        list: [],
      }
    },
    mounted() {
      this.dragControllerDiv()
    },
    methods:{
    	dragControllerDiv() {
       		let left = document.getElementById('left-tree')
        	let line = document.getElementById('resize')
        	let right = document.getElementById('right-content')
        	// 鼠标按下事件
        	line.onmousedown = function (e) {
          	let startX = e.clientX
          	line.left = line.offsetLeft
          	// 鼠标拖动事件
          	document.onmousemove = function (e) {
            	let moveLen = line.left + (e.clientX - startX)
            	if (
              	moveLen >= document.body.clientWidth * 0.1 &&
              	moveLen <= document.body.clientWidth * 0.4
            	) {
              	line.style.left = moveLen + 'px'
              	left.style.width = moveLen + 'px'
              	right.style.width = document.body.clientWidth - moveLen + 'px'
            	}
          	}
          		document.onmouseup = function () {
           		document.onmousemove = null
            	document.onmouseup = null
          		}
        	}
      	},
    }
  }
</script>

<style lang="scss" scoped>
.contnet {
  display: flex;
}
.left-tree {
  position: relative;
  width: 300px;
  height: 100%;
  background: #fff;
  box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.050980392156862744);
  border-radius: 4px;
  vertical-align: top;
  display: inline-block;
  box-sizing: border-box;
  -ms-flex-negative: 0;
  flex-shrink: 0;
  padding: 10px 0 0 10px;
  margin-right: 8px;
}
.resize {
  cursor: col-resize;
  position: absolute;
  top: 45%;
  right: -8px;
  background-color: #d6d6d6;
  border-radius: 5px;
  margin-top: -10px;
  width: 10px;
  height: 50px;
  background-size: cover;
  background-position: 50%;
  font-size: 32px;
  color: #fff;
}
.right-content {
  display: inline-block;
  width: calc(100% - 310px);
  height: 100%;
  background: #fff;
  -webkit-box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.050980392156862744);
  box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.050980392156862744);
  border-radius: 4px;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  padding: 10px;
  vertical-align: top;
  overflow: auto;
}
</style>
  1. 阐述
    (1).content{ display:flex;} 一定要有,否则在拖拽时会出现换行的情况
    (2)resize 要相对于父级绝对定位

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/767898.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

文心一言 VS 讯飞星火 VS chatgpt (62)-- 算法导论6.5 1题

文心一言 VS 讯飞星火 VS chatgpt &#xff08;62&#xff09;-- 算法导论6.5 1题 一、试说明 HEAP-EXTRACT-MAX在堆A(15&#xff0c;13&#xff0c;9&#xff0c;5&#xff0c;12&#xff0c;8&#xff0c;7&#xff0c;4&#xff0c;0&#xff0c;6&#xff0c;2&#xff0c…

高时空分辨率、高精度一体化预测技术之风、光、水能源自动化预测技术

能源是国民经济发展和人民生活必须的重要物质基础。在过去的200多年里&#xff0c;建立在煤炭、石油、天然气等化石燃料基础上的能源体系极大的推动了人类社会的发展。但是人类在使用化石燃料的同时&#xff0c;也带来了严重的环境污染和生态系统破坏。近年来&#xff0c;世界各…

Docker 仓库与注册表: 构建可靠的容器镜像生态系统

&#x1f337;&#x1f341; 博主 libin9iOak带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33…

leetcode 445. Add Two Numbers II(两数相加)

用链表代表2个数字&#xff0c;这2个数字相加的和用链表返回。 最高位在链表的head. 思路&#xff1a; 1.链表逆序 数字相加是从低位到高位的&#xff0c;然而链表中的数字是从高位指向低位。 所以涉及到链表的逆序。 逆序之后只需从head到tail把两个链表的数字相加&#x…

BCG的Ribbonbar的categroy滚动控制处理方法

重点&#xff1a; 1.BCG的Ribbonbar可以通过鼠标滚轮进行界面滚动变化。 2.想要禁止这个功能&#xff0c;只能通过继承PreTranslateMessage消息&#xff0c;将滚动的消息进行屏蔽即可。它们没有控制滚动的函数处理 class CLbCBCGPRibbonBar : public CBCGPRibbonBar { public…

如何写一个Python三方包供别人使用

第一步&#xff0c;新建文件夹 好的&#xff0c;我们先new一个项目&#xff0c;空文件夹就行&#xff0c;例如新建一个叫my-wheel的项目 第二步&#xff0c;写核心代码 新建一个mywheel的包&#xff0c;包下新建文件example.py def msg():return "a python lib named …

杜冬亮,高考文科状元,从辉煌学海驶向人生新篇章

在众多学子的梦想之路上&#xff0c;总有一些人犹如璀璨的星辰&#xff0c;照亮前行的道路&#xff0c;杜冬亮&#xff08;曾用名&#xff1a;杜惜泽&#xff09;便是其中的一员。他以2004年高考文科状元的辉煌成就&#xff0c;跨越了学海的一座座险峻高峰&#xff0c;为后来的…

将已删除的 Safari 历史记录恢复到 iPhone 的 6 种最佳方法

Safari 是 iPhone 上的默认浏览器。其直观且易于使用的界面是许多 iPhone 用户更喜欢 Safari 而非其他浏览器的原因之一。但是&#xff0c;如果您无意或故意删除了浏览历史记录&#xff0c;但发现稍后仍需要恢复已删除的 Safari 历史记录&#xff0c;这可能会给您带来一些麻烦。…

LCD-STM32液晶显示中英文-(6.unicode字符集)

目录 Unicode字符集和编码 UTF-32 UTF-16 UTF-8&#xff08;重点&#xff1a;必须掌握&#xff09; BOM ANSI Unicode字符集和编码 由于各个国家或地区都根据使用自己的文字系统制定标准&#xff0c;同一个编码在不同的标准里表示不一样的字符&#xff0c;各个标准互不兼容…

RabbitMQ ---- RabbitMQ 其他知识点

RabbitMQ ---- RabbitMQ 其他知识点 1. 幂等性1.1 概念1.2 消息重复消费1.3 解决思路1.4 消费端的幂等性保障1.5 唯一 ID 指纹码机制1.6 Redis 原子性 2. 优先级队列2.1 使用场景2.2 如何添加2.3 实战 3. 惰性队列3.1 使用场景3.2 两种模式3.3 内存开销对比 1. 幂等性 1.1 概…

机器学习32:《推荐系统-V》再谈召回、打分和重排

在《机器学习28&#xff1a;推荐系统-概述》一文中&#xff0c;笔者概述了推荐系统的基本术语和一般架构&#xff0c;通过【推荐系统 I&#xff5e;IV】系列课程的学习&#xff0c;相信读者对推荐系统已经有了一定的理解。本节&#xff0c;我们再来回顾一下推荐系统的核心环节—…

常见的电机控制算法实现

BLDC电机控制算法 BLDC&#xff08;Brushless Direct Current Motor&#xff09;无刷电机属于自换流型(自我方向转换)&#xff0c;因此控制起来更加复杂。 BLDC电机控制要求了解电机进行整流转向的转子位置和机制。对于闭环速度控制&#xff0c;有两个附加要求&#xff0c;即…

代码随想录day21

二叉搜索树的最小绝对差 思路&#xff1a;记住二叉搜索树的特性&#xff0c;中序遍历是有序数组&#xff0c;所以我们直接对树做一次中序遍历&#xff0c;然后对数组中的node进行一次循环遍历不断获取最小值就行了&#xff0c;这里需要创建一个max_value拿来作比较 对于中序遍历…

推荐系统-基于标签的Top-N个性化推荐实现

随着移动互联网的快速发展&#xff0c;UGC标签系统受到越来越多推荐应用&#xff0c;标签不但能反映用户的兴趣又能描述物品的本身特征。现有的标签推荐算法没有考虑用户的连续行为所产生的影响&#xff0c;于是人们提出了一种基于标签的个性化推荐算法。该算法将〈用户-标签-物…

【idea】idea全局设置Maven配置

Idea版本&#xff1a;2021.1.1 1、点击File->Close project 2、点击Customize->All settings 3、设置Maven

2023年8个最佳WordPress电子书主题

您是正在为您的网站寻找最佳的WordPress电子书主题吗&#xff1f;无论您是独立作家、出版社还是同时销售电子书和实体书的在线书店&#xff0c;拥有一个可以直接销售电子书的网站都是一个好主意。 销售电子书可能有助于分销和扩大影响力&#xff0c;但也会侵蚀您的利润。例如&…

11、动手学深度学习——语言模型和数据集:代码详解

我们了解了如何将文本数据映射为词元&#xff0c;以及将这些词元可以视为一系列离散的观测&#xff0c;例如单词或字符。 假设长度为 T T T的文本序列中的词元依次为 x 1 , x 2 , … , x T x_1, x_2, \ldots, x_T x1​,x2​,…,xT​。于是&#xff0c; x t x_t xt​&#xff08…

spring整合dataJPA

1.入门案例 1.1 项目整体结构 表&#xff1a;sql DROP TABLE IF EXISTS t_user; CREATE TABLE t_user ( user_id int(0) NOT NULL AUTO_INCREMENT, user_name varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, real_name varchar(255) CHAR…

关于互联网金融平台性能测试的过程经历分享

目录 项目角色 测试范围 测试策略 项目角色 性能测试专家&#xff0c;负责互金平台以及5个关联外围系统性能测试方案制定、测试策略制定&#xff0c;测试前期配合架构组&#xff0c;某某云根据平台内各模块的目标处理能力流量统计来计算调用占比并估算机器设备配置。端对端…