vue实现左侧拖拽拉伸,展开收起

ops/2024/10/22 13:34:31/

需求:1.左侧是个树形结构,有的文字过长展示不全,想通过拖拽显示全部的数据
           2.展开收起

实现图中效果

<div class="catalog-drag"><svg t="1687228434888" class="icon" viewBox="0 0 1024 1024" version="1.1"                         xmlns="http://www.w3.org/2000/svg" p-id="1527" width="16" height="30"><path d="M446.464 146.944v727.552c0 15.872-14.336 27.648-31.744 27.648-17.92 0-31.744-12.288-31.744-27.648V146.944c0-15.872 14.336-27.648 31.744-27.648 17.408-0.512 31.744 11.776 31.744 27.648zM644.608 146.944v727.552c0 15.872-14.336 27.648-31.744 27.648-17.92 0-31.744-12.288-31.744-27.648V146.944c0-15.872 14.336-27.648 31.744-27.648 17.408-0.512 31.744 11.776 31.744 27.648zM84.48 525.312c-8.192-7.68-8.192-22.528 0-30.208L180.224 409.6l88.064-78.848c10.24-9.216 24.576 0 24.576 14.848v328.704c0 15.36-14.336 24.576-24.576 14.848l-88.064-78.848-95.744-84.992zM942.592 525.312c8.192-7.168 8.192-22.016 0-29.696l-95.744-84.992L758.784 332.8c-10.24-9.216-24.576 0-24.576 14.848v325.632c0 15.36 14.336 24.064 24.576 14.848l88.064-77.824 95.744-84.992z" fill="#707070" p-id="1528"></path> </svg>
</div>   //左侧侧边栏拖拽事件handleLeft() {console.log("左侧侧边栏拖拽事件");var leftBar = document.getElementsByClassName("catalog-drag")[0];var leftTree = document.getElementsByClassName("product-catalog-tree")[0];// 鼠标按下事件leftBar.onmousedown = function () {// 颜色提醒leftBar.style.backgroundColor = "#99B8FC";// 鼠标拖动事件document.onmousemove = function (eventMove) {let width = eventMove.clientX + 20;console.log("width =>", width);if (width >= 600) {width = 600; // 设置最大拉伸宽度为600} else if (width <= 200) {// 当拉伸宽度为小于或等于200,最小拉伸宽度为200width = 294;}leftBar.style.width = width + "px";};// 鼠标松开事件document.onmouseup = function () {// 颜色恢复leftBar.style.backgroundColor = "#fafcff";document.onmousemove = null;document.onmouseup = null;leftBar .releaseCapture && leftResizeBar.releaseCapture();};leftBar.setCapture && leftBar.setCapture();return false;};},
.catalog-drag {position: absolute;width: 4px;top: 0;right: 0;height: 100%;cursor: col-resize;padding-top: calc(45vh - 10px);user-select: none;transition: all ease 0.3s;
}.catalog-drag:hover {background-color: #99b8fc !important;
}.catalog-drag svg {position: absolute;left: 1;
}

在mounted里面调用就可以了

实现左侧展开收起

    <div @click="handleShowLeft"><img v-if="!isShowLeft" src="../../new_/imgs/icon-fold.svg" style="width:14px" /><img v-else src="../../new_/imgs/icon-upfold.svg" style="width: 14px" /></div>    // 左侧展开收起handleShowLeft() {this.isShowLeft= !this.isShowLeft;var leftTree = document.getElementsByClassName("product-catalog-tree")[0];if (this.isShowLeft) {leftTree .style.width = "26px";} else {leftTree.style.width = "294px";setTimeout(() => {//展开后还能继续拖拽this.handleLeft();}, 100);}},


 


http://www.ppmy.cn/ops/45504.html

相关文章

【香橙派 AIpro】新手保姆级开箱教程:Linux镜像+vscode远程连接

香橙派 AIpro 开发板 AI 应用部署测评 写在最前面一、开发板概述官方资料试用印象适用场景 二、详细开发前准备步骤1. 环境准备2. 环境搭建3. vscode安装ssh插件4. 香橙派 AIpro 添加连接配置5. 连接香橙派 AIpro6. SSH配置 二、详细开发步骤1. 登录 juypter lab2. 样例运行3. …

蓝桥杯-班级活动

题目描述 小明的老师准备组织一次班级活动。班上一共有 ( n ) 名&#xff08;( n ) 为偶数&#xff09;同学&#xff0c;老师想把所有的同学进行分组&#xff0c;每两名同学一组。为了公平&#xff0c;老师给每名同学随机分配了一个 ( n ) 以内的正整数作为 id&#xff0c;第 …

Lua 基础 03 常用函数

Lua 基础相关知识 第三期 字符串 格式化字符串 string.format 通常字符串的连接可以使用 .. 符号&#xff0c;不过当字符串比较长&#xff0c;这样的连接方式就很繁琐&#xff0c;这时可以使用 string.format 进行格式化。 常用的格式控制符&#xff1a; %s 接收一个字符串…

C语言:结构体(详细讲解)

目录 结构体类型的声明 结构声明 描述一个学生 结构体的创建和初始化​编辑 结构体的⾃引⽤ 结构体的特殊声明 结构体内存对⻬ 对⻬规则 练习1 练习2 练习3 练习4-结构体嵌套问题 为什么会存在内存对⻬ 修改默认对⻬数 结构体的传参 结构体实现位段 什么是位段…

uni-app App端实现文字语音播报(Ba-TTS)

前言 最近在遇到消息提示语音播放出来&#xff0c;查了一圈文档发现并没有自带api 后面想起支付宝收钱播报&#xff0c;不受限与系统环境和版本环境&#xff08;后面查阅他是音频实现的&#xff09; 如果是由安卓端需要语音播放功能-直接使用Ba-TTs救急&#xff08;需要付费2…

VSCODE 常用快捷键

快捷按键 注释 CTRL /CTRL KSHIFT ALT A取消注释 CTRL /CTRL KSHIFT ALT A搜索文件 Ctrl P移动到某一行 Ctrl g打开一个新窗口 Ctrl Shift N关闭窗口 Ctrl Shift W新建文件 Ctrl N文件间切换 Ctrl Tab全部文件搜索 Ctrl Shift F全屏 F11 打开文件出现中文乱码 文件右下角…

C++第二十二弹---vector深度剖析及模拟实现(下)

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】 目录 1、容量操作 2、内容修改操作 3、打印函数 4、迭代器失效 4.1、什么是迭代器失效 4.2、哪些操作会引起迭代器失效 总结 1、容量操作 size()…

UE5 双手握剑的实现(逆向运动学IK)

UE5 双手握剑的实现 IK 前言 什么是IK&#xff1f; UE官方给我们提供了很多对于IK处理的节点&#xff0c;比如ABRIK、Two Bone IK、Full Body IK 、CCD IK等&#xff0c;但是看到这&#xff0c;很多人就好奇了&#xff0c;什么是IK&#xff1f; 首先我们来看看虚幻小白人的骨…