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

  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.clientXline.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 = nulldocument.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.hqwc.cn/news/28812.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么是 Elasticsearch 索引?

作者&#xff1a;David Brimley 索引这个术语在科技界已经被用满了。 如果你问大多数开发人员什么是索引&#xff0c;他们可能会告诉你索引通常指的是关系数据库 (RDBMS) 中与表关联的数据结构&#xff0c;它提高了数据检索操作的速度。 但什么是 Elasticsearch 索引&#xff…

利用Python与ArcGIS工具进行蒸散发ET、植被总初级生产力GPP估算

查看原文>>>基于”Python”多技术融合在蒸散发与植被总初级生产力估算中的实践应用 熟悉蒸散发ET及其组分&#xff08;植被蒸腾Ec、土壤蒸发Es、冠层截留Ei&#xff09;、植被总初级生产力GPP的概念和碳水耦合的基本原理&#xff1b;掌握利用Python与ArcGIS工具进行课…

一篇文章教会你,在IntelliJ IDEA 中,一些让你相见恨晚的技巧

1.Easy Code Easy Code我个人在写博客案例demo时用的比较多&#xff0c;它可以快速的将数据库表映射成Java中的entity、controller、service、dao、mapper等文件&#xff0c;少量编码实现快速开发。 先用database连接数据库&#xff0c;在对应表上直接右键执行EasyCode即可生成…

【PostgreSQL内核学习(三)—— 查询重写】

查询重写 查询重写系统规则视图和规则系统ASLO型规则的查询重写规则系统与触发器的区别 查询重写的处理操作定义重写规则删除重写规则对查询树进行重写 声明&#xff1a;本文的部分内容参考了他人的文章。在编写过程中&#xff0c;我们尊重他人的知识产权和学术成果&#xff0c…

Docker 架构解析:多角度解析 Docker 引擎与容器运行时

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

HIVE SQL 根据主键去重并实现其余字段分组聚合

相同个人id下所有字段按时间顺序补位&#xff0c;取首个不为空值 --数据建表 drop table if exists db.tb_name; create table if not exists db.tb_name ( id string,name string,tele string,email string,date string ) ; insert overwrite table db.tb_name values (&qu…

0基础学习VR全景平台篇 第66篇:VR直播-如何管理VR直播活动

一、电脑端管理 已创建好的VR直播活动可以在【管理后台】-【作品管理】-【VR直播】列表下查看到。 1、点击活动标题可以直接进入电脑端的播放页面&#xff0c;点击“编辑”按钮可以进入活动的设置界面。 2、电脑端播放页 该链接地址是可以自适应电脑端和手机端的&#xff0c…

视频弹题、视频答题来实现视频防录屏和防挂机

视频弹题、视频答题来实现视频防录屏和防挂机 1.视频播放到某个时间点&#xff0c;弹出问题卡&#xff0c;学员只有正确回答课件视频中弹出的问题之后才能继续观看视频。 2.通过互动问答的方式&#xff0c;不仅有利于巩固前边学习的知识点&#xff0c;评估学员的学习效果&#…

3ds max高级教程:创建带有骨骼动画的机器人模型

推荐&#xff1a; NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 然而&#xff0c;下面我们示例机器人腿的第一个版本不是很现实&#xff0c;因为它会像没有肌肉的骨骼结构一样坍塌。在第二个版本中&#xff0c;我们将添加一些机器人“肌肉”&#xff0c;第三个版本将包括…

Web安全基础

Web安全基础 一、Web应用安全概述1.1、什么是Web应用安全&#xff1f;1.2、WEB应用安全的兴起1.3、常见web应用1.3.1、常见Web应用—前后台 1.4、Web应用安全与传统安全的区别 二、Web应用的基本架构2.1、Web应用的基本架构2.2、Web服务的提供者——Web中间件2.3、简单的Web服务…

ios oc button 设置

Button调整内部的子控件的位置

使用IDEA社区版创建SpringBoot项目

文章目录 1.关于IDEA社区版的版本2.下载Spring Boot Helper3.创建项目4.配置Maven国内源4.1找不到settings.xml的情况4.2找得到settings.xml的情况 4.3删除repository目录下的所有文件和目录5.加载项目6.解决org.springframework.boot:spring-boot-starter-parent:pom:2.7.13.R…