Vue3封装一个左侧可拖拽折叠的侧边栏布局

功能

1、点击左侧侧边栏可折叠或打开
2、左侧侧边栏可拖拽

代码

<template><div class="fold-left-box"><div class="fold-left-box-left" :style="{ width: asideWidth + 'px' }" v-show="asideWidth > 0">left</div><divclass="fold-left-box-line":style="{ cursor: asideWidth === 0 ? '' : 'col-resize' }"ref="drag"><el-button size="mini" circle class="fold-left-box-line-button" @click="foldLeft">{{asideWidth === 0 ? '开' : '关'}}</el-button></div><div class="fold-left-box-main">main</div></div>
</template><script setup>
import { ref, onMounted } from 'vue'
onMounted(() => {bindDrop()
})
function foldLeft() {asideWidth.value = asideWidth.value === 0 ? 250 : 0
}
const drag = ref(null)
const asideWidth = ref(300)
function bindDrop() {drag.value.onmousedown = function () {document.onmousemove = function (e) {asideWidth.value = asideWidth.value + e.movementXif (asideWidth.value < 20) {document.onmouseup()asideWidth.value = 0}}document.onmouseup = function () {document.onmousemove = nulldocument.onmouseup = null}return false}
}
</script>
<style scoped>
.fold-left-box {height: 500px;overflow: hidden;display: flex;
}
.fold-left-box-left {height: 100%;overflow: hidden;
}
.fold-left-box-line {width: 4px;height: 100%;position: relative;border-left: 1px solid #e6e6e6;
}
.fold-left-box-main {height: 100%;flex: 1;padding-left: 12px;overflow: hidden;
}
.fold-left-box-line-button {position: absolute;top: 50%;right: -10px;
}
</style>

效果图

vue2链接: Vue封装一个左侧可拖拽折叠的侧边栏布局

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

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

相关文章

PAT 1097 Deduplication on a Linked List

个人学习记录&#xff0c;代码难免不尽人意 Given a singly linked list L with integer keys, you are supposed to remove the nodes with duplicated absolute values of the keys. That is, for each value K, only the first node of which the value or absolute value o…

实例038 设置窗体在屏幕中的位置

实例说明 在窗体中可以设置窗体居中显示&#xff0c;本例通过设置窗体的Left属性和Top属性可以准确设置窗体的位置。运行本例&#xff0c;效果如图1.38所示。 技术要点 设置窗体在屏幕中的位置&#xff0c;可以通过设置窗体的属性来实现。窗体的Left属性表示窗体距屏幕左侧的…

angular 子组件ngOnChanges监听@input传入的输入属性

在进入主题之前&#xff0c;先了解一下angular的生命周期。 生命周期 钩子分类 指令与组件共有的钩子 ngOnChangesngOnInitngDoCheckngOnDestroy 组件特有的钩子 ngAfterContentInitngAfterContentCheckedngAfterViewInitngAfterViewChecked 生命周期钩子的作用及调用顺序 …

Makefile多个子文件夹

首先&#xff0c;目录结构&#xff1a; 其中根目录Makefile主要作用是调用其他子文件夹Makefile&#xff0c;每个子模块执行各自编译后在build文件夹下生成obj文件&#xff0c;最后再执行build文件夹下Makefile进行链接。 根目录Makefile&#xff1a; TARGET ACT_Drv ##SRC_D…

秦岭地形图、水系图、全景图

来源&#xff1a;头条留白sy&#xff0c;星球研究所等&#xff0c;转自&#xff1a;地理科学研究苑

kubernetes集群(k8s)之安装部署Calico 网络

目录 安装部署Calico 网络 &#xff08;一&#xff09;环境准备 &#xff08;二&#xff09;部署docker环境 &#xff08;三&#xff09;部署kubernetes集群 &#xff08;四&#xff09;部署Calico网络插件 安装部署Calico 网络 &#xff08;一&#xff09;环境准备 IP地…

【历史上的今天】8 月 15 日:苹果推出初代 iMac;谷歌收购摩托罗拉移动;Fuchsia 首次发布

整理 | 王启隆 透过「历史上的今天」&#xff0c;从过去看未来&#xff0c;从现在亦可以改变未来。 今天是 2023 年 8 月 15 日&#xff0c;在 1878 年的今天&#xff0c;我国第一套邮票发行。中国是一个文明古国&#xff0c;在邮政通信方面&#xff0c;有着悠久的历史。早在三…

【Qt】多线程

线程创建 自定义线程类 #ifndef CUSTOMETHREAD_H #define CUSTOMETHREAD_H#include <QObject> #include <QThread> #include "add.h"class CustomeThread : public QThread {Q_OBJECT public:// Bind the thread kernel function.explicit CustomeThre…

分布式监控平台—zabbix

前言一、zabbix概述1.1 什么是zabbix1.2 zabbix的监控原理1.3 zabbix常见五个应用程序1.4 zabbix的监控模式1.5 监控架构1.5.1 C/S&#xff08;server—client&#xff09;1.5.2 server—proxy—client1.5.3 master—node—client 二、部署zabbix2.1 部署 zabbix server 端2.2 …

“华为杯”研究生数学建模竞赛2018年-【华为杯】C题:对恐怖主义袭击事件数据的量化分析(续篇)

目录 5.3.3 逻辑回归预测模型确立 5.3.4 利用逻辑回归预测模型进行求解 5.4 模型评价

日常BUG——SpringBoot关于父子工程依赖问题

&#x1f61c;作 者&#xff1a;是江迪呀✒️本文关键词&#xff1a;日常BUG、BUG、问题分析☀️每日 一言 &#xff1a;存在错误说明你在进步&#xff01; 一、问题描述 在父子工程A和B中。A依赖于B&#xff0c;但是A中却无法引入B中的依赖&#xff0c;具体出现的…

Kubernetes 部署DolphinScheduler 创建租户失败

创建租户 报错创建租户失败。后台日志如下 源代码跟踪 org.apache.dolphinscheduler.api.service.impl.TenantServiceImpl / if hdfs startup if (PropertyUtils.getResUploadStartupState()) {createTenantDirIfNotExists(tenantCode); }需要将 resource.storage.type 置为…

Java反射获取所有Controller和RestController类的方法

Java反射获取所有Controller和RestController类的方法 引入三方反射工具Reflections <dependency><groupId>org.reflections</groupId><artifactId>reflections</artifactId><version>0.10.2</version> </dependency>利用反…

【数据结构】队列及其实现

目录 1.队列的概念及结构 2.队列的实现 2.1队列结构定义 2.2队列的初始化及销毁 2.3数据入队 2.4数据出队 2.5访问队头数据 2.6访问队尾数据 2.6判断队列是否为空 2.7求队列的大小 2.7打印队列 1.队列的概念及结构 队列&#xff1a;只允许在一端进行插入数据操作&…

ECMAScript 2023(ES14)中的所有新功能

​JavaScript在持续发展&#xff0c;近期ECMAScript 14中发布添加了一批新功能&#xff0c;让我们一起来探索一下今年对JavaScript开发人员的新功能。时间的车轮又过去了一年&#xff0c;随之而来的是JavaScript的新官方版本&#xff1a;ECMAScript 2023&#xff0c;也被称为EC…

与微服务平台厂家联手,一起实现高效率发展!

在如今的快节奏发展社会中&#xff0c;只有利用科技的力量&#xff0c;才能与市场接轨&#xff0c;了解市场和客户需求&#xff0c;最终实现更快速的发展。如果还停留在闭门造车的环境中&#xff0c;不“引进来&#xff0c;走出去”&#xff0c;那势必会与成功擦肩而过。微服务…

clickHouse部署

docker仓库地址 https://hub.docker.com/ 1、docker环境搭建 # 1.先安装yml yum install -y yum-utils device-mapper-persistent-data lvm2 # 2.设置阿里云镜像 sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo# 3.查…

【芯片前端】auto_testbench的大版本升级——加入简单预期与自动比对

前言 前文提要&#xff1a; 【芯片前端】一键生成简易版本定向RTL验证环境的脚本——auto_verification_rtl脚本_尼德兰的喵的博客-CSDN博客 【芯片前端】可能是定向验证的巅峰之作——auto_testbench_autotestbench_尼德兰的喵的博客-CSDN博客 工具路径&#xff1a; auto…

广告聚合平台能为APP开发者提供哪些帮助

应用变现平台是帮助开发者优化广告策略并最终获得更多收入的综合途径。在广告变现过程中&#xff0c;接入单一的广告联盟&#xff0c;变现效率不高&#xff0c;并且开发者需要花费许多精力进行筛选和管理&#xff0c;难免会应接不暇&#xff0c;而聚合广告平台的出现则一定程度…

GloVe、子词嵌入、BPE字节对编码、BERT相关知识(第十四次组会)

GloVe、子词嵌入、BPE字节对编码、BERT相关知识(第十四次组会) Glove子词嵌入上游、下游任务监督学习、无监督学习BERTGlove 子词嵌入 上游、下游任务 监督学习、无监督学习 BERT