【Vue3】弹窗添加鼠标hover上边缘左、下的的拉伸宽度高度操作

news/2024/12/2 20:13:26/

需求

鼠标移动上去可以拖拽容器宽度和高度
在这里插入图片描述

代码

省略了一些代码,但应该都看得懂吧~就是两条线添加 mousedown 事件,记得 mousemove 要挂载到 document 上!!!

<div class="line-w" @mousedown="startResize('width')"></div>
<div class="line-h" @mousedown="startResize('height')"></div>
const containerWidth = ref(500);
const containerHeight = ref(640);
const isResizing = ref(false);
const resizeDirection = ref('');
const contentRef = ref<HTMLElement>();
function startResize(direction: string) {isResizing.value = true;resizeDirection.value = direction;document.onselectstart = () => false;document.ondragstart = () => false;document.addEventListener('mousemove', onMouseMove);document.addEventListener('mouseup', onMouseup);
}function onMouseup() {console.log('mouseup');isResizing.value = false;document.onselectstart = null;document.ondragstart = null;document.removeEventListener('mousemove', onMouseMove);document.removeEventListener('mouseup', onMouseup);
}function onMouseMove(e: MouseEvent) {console.log('mousemove');if (!isResizing.value) return;const { clientX, clientY } = e;if (resizeDirection.value === 'width') {const w = contentRef.value.getBoundingClientRect().right - clientX;containerWidth.value = w < 450 ? 450 : w;} else {const h = clientY - contentRef.value.getBoundingClientRect().top;containerHeight.value = h < 640 ? 640 : h;}
}

参考

JS拖拽不流畅、鼠标滑动太快导致拖拽物脱离鼠标问题


http://www.ppmy.cn/news/1551837.html

相关文章

WEEXNews「昨夜今晨重要资讯,11月27日

1️⃣美国法院裁定OFAC越权制裁Tornado Cash智能合约 2️⃣美联储会议纪要&#xff1a;未来倾向“渐进”降息&#xff0c;有暂停可能 3️⃣特朗普政府考虑让CFTC主导数字资产监管 4️⃣巴西议员提出比特币储备法案&#xff0c;拟将国库储备的5%分配至比特币 5️⃣摩洛哥或将正式…

Python读取摄像头视频并将其保存为MP4文件

在Python中读取摄像头视频并将其保存为MP4文件&#xff0c;通常需要使用OpenCV库。OpenCV是一个强大的计算机视觉库&#xff0c;它提供了丰富的功能来处理图像和视频。 以下是一个简单的示例代码&#xff0c;展示了如何使用OpenCV从摄像头读取视频并将其保存为MP4文件&#xf…

【llamafactory】安装与环境配置

拉取镜像 git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git cd LLaMA-Factory创建虚拟环境 conda create -n llamafactory python3.10 conda activate llamafactory安装所需依赖 pip install -e ".[torch,vllm,optimum,auto_gptq]"

区块链学习笔记(2)--区块链的交易模型part1

模型基础 区块链的tx分为两种模型&#xff0c;分别是比特币为代表的UTXO&#xff08;Unspent Transaction Output&#xff09;模型&#xff0c;和以太坊为代表的Account模型。前者适用于货币记账&#xff0c;后者适用于链上应用。 UTXO模型 类似于现金的交易模型 一个tx包含…

鸢尾花数据集:从统计到几何的探索

鸢尾花数据集&#xff1a;从统计到几何的探索 引言鸢尾花数据集简介数据集概述统计视角 数据类型与存储NumPy ArrayPandas DataFrame 几何视角行向量与列向量行向量列向量 空间表示 结论 引言 鸢尾花数据集是机器学习和模式识别领域中的一个经典数据集。它由统计学家罗纳德费舍…

如何在 Ubuntu 18.04 上设置 Apache 虚拟主机

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 简介 Apache Web 服务器是一种流行的在互联网上提供网站服务的方法。截至2019年&#xff0c;据估计&#xff0c;它为所有活跃网站的29%…

http的文件上传和下载原理

目录 一&#xff1a;上传 1&#xff1a;http请求格式 2&#xff1a;文件上传类型分析 1&#xff1a;md5秒传 2&#xff1a;分片上传 1. 什么是分片上传 2. 分片上传的场景 3&#xff1a;断点续传 1. 什么是断点续传 2. 应用场景 3. 实现断点续传的核心逻辑 4. 实现流…

安全见闻1

声明&#xff01; 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下&#xff0c;如涉及侵权马上删除文章&#xff0c;笔记只是方便各位师傅的学习和探讨&#xff0c;文章所提到的网站以及内容&#xff0c;只做学习交流&#xff0c;其他均与本人以及泷羽sec团队无关&a…