当前位置: 首页 > news >正文

vue3 拖拽插件(drag)

前端vue项目中,经常会有弹框拖拽的需求,下面介绍常用方法:
1.如果你使用的是elementPlus插件的el-dialog组件,只需要增加draggable属性即可,代码如下:

<el-dialogv-model="showDiloag"width="500"draggable></e--dialog>

2.如果不使用ele 的组件,自己写弹框,那么可以自定义指令,代码如下(vue3):

drag.js文件:

const drag = {mounted(el, binding) {el.style.position = "absolute";const data = binding.value || { x: 0, y: 0, zIndex: 99999 };let { x, y, zIndex = 99999 } = data;el.style.left = x + "px";el.style.top = y + "px";el.style.zIndex = zIndex;let isDragging = false;let baseMousePosition = { x: 0, y: 0 };let dom = data.targetRef || document.getElementById(data.targetId) || el;dom.style.cursor = "move";const onDragStart = (e) => {if (e.button === 0) {isDragging = true;baseMousePosition.x = e.pageX;baseMousePosition.y = e.pageY;window.addEventListener("mousemove", onDraging);}};const onDragEnd = (e) => {isDragging = false;x = parseInt(el.style.left);y = parseInt(el.style.top);window.removeEventListener("mousemove", onDraging);};const onDraging = (e) => {if (isDragging) {el.style.left = e.pageX - baseMousePosition.x + x + "px";el.style.top = e.pageY - baseMousePosition.y + y + "px";}};dom.addEventListener("mousedown", onDragStart);window.addEventListener("mouseup", onDragEnd);},
};const directives = {install: function (app) {app.directive('drag', drag)}
}
export default directives

vue文件使用:

<script setup>
import { ref } from "vue";const dragRef = ref()
const dragOptions= ref({x: 100,y: 200,targetRef: dragRef,
})
</script><template><div v-drag="dragOptions" class="dialog"><div class="dialog_header" ref="dragRef">弹框标题</div><div class="dialog_content">弹框内容</div></div><template>

这里的dragOptions就是配置项,x和y是弹框的初始位置的left和top值,targetRef的值是你希望鼠标在哪个dom元素可以拖拽,如果不传,就默认在整个弹框范围,都可以拖拽。

相关文章:

vue3 拖拽插件(drag)

前端vue项目中&#xff0c;经常会有弹框拖拽的需求&#xff0c;下面介绍常用方法&#xff1a; 1.如果你使用的是elementPlus插件的el-dialog组件,只需要增加draggable属性即可&#xff0c;代码如下&#xff1a; <el-dialogv-model"showDiloag"width"500&quo…...

数据结构--线性表(顺序结构)

1.线性表的定义和基本操作 1.1线性表以及基本逻辑 1.1.1线性表 &#xff08;1&#xff09;n(>0)个数据元素的有限序列&#xff0c;记作&#xff08;a1,a2,...an&#xff09;&#xff0c;其中ai是线性表中的数据元素&#xff0c;n是表的长度。 &#xff08;2&#xff09;…...

面试准备111

Java基础 反射 集合 多线程 Synchronized/volatile 线程池 cas atomic 网络 tcp 三次握手/四次挥手 流量控制 拥塞控制 数据结构 算法 Spring 循环依赖 Mybatis 如何防止sql注入 Mysql 索引 索引分类 索引设计原则 事务 四种隔离级别 MVCC 日志 Binlog…...

Spring 的 IOC 和 AOP 是什么,有哪些优点?解密 Spring两大核心概念:IOC与AOP的魅力所在

在现代Java开发中&#xff0c;Spring框架几乎是不可或缺的存在。它不仅简化了开发过程&#xff0c;还提高了软件的灵活性和可维护性。今天&#xff0c;我们要深入探讨Spring中的两个核心概念&#xff1a;IOC&#xff08;控制反转&#xff09;和AOP&#xff08;面向切面编程&…...

第二百六十四节 JPA教程 - JPA查询日期参数示例

JPA教程 - JPA查询日期参数示例 我们可以在查询中使用日期类型值。 以下代码使用EntityManager创建具有两个参数的查询。 然后它传递两个日期类型值。 em.createQuery("SELECT e " "FROM Professor e " "WHERE e.startDate BETWEEN :start AND :en…...

Spring MVC的运行流程详解

Spring MVC作为一个广泛使用的框架&#xff0c;提供了灵活且强大的MVC架构支持。尤其在业务系统中&#xff0c;Spring MVC能够有效地处理大量并发请求&#xff0c;提供良好的用户体验。本文将详细讲解Spring MVC的运行流程&#xff0c;以电商交易系统为案例&#xff0c;帮助读者…...

判断有向图是否为单连通图的算法

判断有向图是否为单连通图的算法 算法描述伪代码C语言实现解释在图论中,单连通图(singly connected graph)是指对于图中的任意两个顶点 m 和 v,如果存在从 m 到 v 的路径,则该路径是唯一的。为了判断一个有向图是否为单连通图,我们需要确保从任意顶点出发,到任意其他顶点…...

php与python建站的区别有哪些

php与Python建站的区别&#xff1a; 1、语言层面Python的特性比php好&#xff0c;更加规范。 2、Python的性能比php高。 3、有只需要启动服务的时候执行一次的代码&#xff0c;在php里每个请求都会被执行一次&#xff0c;Python不需要。虽然php可以通过缓存缩短这方面的差距…...

模型评估与验证:确保模型在未知数据上的表现----示例:使用K折交叉验证评估分类模型、房价预测问题使用K折交叉验证来评估一个线性回归模型的性能

模型评估与验证是机器学习流程中的关键步骤&#xff0c;它帮助我们了解模型在未见过的数据上的泛化能力。交叉验证&#xff08;Cross-Validation, CV&#xff09;是一种常用的技术&#xff0c;通过将数据集划分为多个子集并进行多次训练和测试来估计模型的性能。此外&#xff0…...

awd基础学习

一、常用防御手段 1、改ssh密码 passwd [user] 2、改数据库密码 进入数据库 mysql -uroot -proot 改密码 update mysql.user set passwordpassword(新密码) where userroot; 查看用户信息密码 select host,user,password from mysql.user; 改配置文件 &#xff08;否则会宕机…...

C#基于SkiaSharp实现印章管理(10)

向PDF文件插入印章图片比之前实现的向图片文件插入印章麻烦得多。   最初的想法是使用PDF浏览控件在线打开PDF文件&#xff0c;然后在控件中实现鼠标移动时动态显示印章&#xff0c;点击鼠标时向当前PDF页面的鼠标点击位置插入图片。由于是.net 8的Winform项目&#xff0c;选…...

通过栈实现字符串中查找是否有指定字符串的存在

题目示例&#xff1a; 分析 由与没有给出字符串的长度&#xff0c;所以只能通过getline一次性处理&#xff0c;而在输入后恰好能倒序处理字符串&#xff0c;以标点符号为分界点&#xff0c;将数字当成字符放到栈里&#xff0c;遇到下一个标点符号时执行查找操作&#xff0c;…...

MongoDB伪分布式部署(mac M2)

1. 序言 本博客是上一博客的进阶版&#xff1a;mac M2安装单机版 MongoDB 7.x&#xff0c;上一博客可以看做是单机、单节点部署MongoDB本博客将介绍单机、多服务部署MongoDB&#xff0c;实际就是伪分布式部署 2. 副本集(Replica Set)方式部署 2.1 什么是副本集&#xff1f; …...

Golang | Leetcode Golang题解之第454题四数相加II

题目&#xff1a; 题解&#xff1a; func fourSumCount(a, b, c, d []int) (ans int) {countAB : map[int]int{}for _, v : range a {for _, w : range b {countAB[vw]}}for _, v : range c {for _, w : range d {ans countAB[-v-w]}}return }...

[ComfyUI]Flux:超美3D微观山水禅意,经典中文元素AI重现,佛陀楼阁山水画卷

在数字艺术和创意领域&#xff0c;[ComfyUI]Flux以其独特的虚实结合技术&#xff0c;已经成为艺术家和设计师们手中的利器。今天&#xff0c;我们激动地宣布&#xff0c;[ComfyUI]Flux带来了一款超美的3D微观山水禅意作品&#xff0c;经典中文元素通过AI技术重现&#xff0c;包…...

Linux 系统 nvm 管理node无法使用

文章目录 一、报错说明二、报错原因三、解决办法四、验证 一、报错说明 centos7服务器使用nvm安装的node之后&#xff0c;只要使用npm或者node&#xff0c;均会出现以下问题。 npm -v node: /lib64/libm.so.6: version GLIBC_2.27 not found (required by node) node: /lib64…...

信号处理快速傅里叶变换(FFT)的学习

FFT是离散傅立叶变换的快速算法&#xff0c;可以将一个信号变换到频域。有些信号在时域上是很难看出什么特征的&#xff0c;但是如果变换到频域之后&#xff0c;就很容易看出特征了。这就是很多信号分析采用FFT变换的原因。另外&#xff0c;FFT可以将一个信号的频谱提取出来&am…...

vue3项目el-table表格行内编辑加输入框校验

核心点 1. el-form的model属性需要跟el-form-item的prop要对应 2. el-form的model属性绑定tableData 3. el-form-item的prop绑定字符串&#xff1a;scope.index.列名&#xff08;注意有个点&#xff09; 4. el-form-item需要单独设置rules属性 代码示例 <el-form :mod…...

【Node.js】内置模块FileSystem的保姆级入门讲解

作者&#xff1a;CSDN-PleaSure乐事 欢迎大家阅读我的博客 希望大家喜欢 使用环境&#xff1a;Vscode 本文代码都经由博主PleaSure乐事实操后得出&#xff0c;可以放心使用。 1.FileSystem介绍 Node.js 的 fs&#xff08;filesystem&#xff09;模块是一个核心模块&#xff0c…...

问:LINUXWINDOWS线程CPU时间如何排序?

Linux 在Linux上&#xff0c;你可以使用ps命令结合sort命令来查看和排序进程或线程的CPU使用时间。 查看进程的CPU使用时间并按时间排序 使用ps命令的-o选项可以自定义输出格式&#xff0c;-e选项表示显示所有进程&#xff0c;--sort选项用于排序。 ps -e -o pid,tid,comm,…...

从“机器会思考”的执念说起,聊聊神经网络到底是个啥(下篇)

一、神经网络的类型&#xff1a;别被名字搞晕&#xff0c;核心就几种 现在叫“神经网络”的东西五花八门&#xff0c;但绝大多数都是从下面这几类衍生出去的。 1. 前馈神经网络&#xff08;FNN&#xff09;—— 最朴素的直筒子 数据从输入层进&#xff0c;经过若干隐藏层&am…...

ArcMap新手必看:5分钟搞定面要素的四至信息提取(附字段重命名技巧)

ArcMap新手实战&#xff1a;5分钟高效提取面要素四至信息与字段优化技巧 刚接触ArcMap的GIS实习生或规划人员&#xff0c;常常需要快速处理行政区划数据并生成规范的四至报告。面对属性表中密密麻麻的英文字段名和冗余数据&#xff0c;如何高效完成从数据加载到结果美化的全流程…...

OpenClaw配置备份指南:Qwen3-32B镜像环境迁移无忧方案

OpenClaw配置备份指南&#xff1a;Qwen3-32B镜像环境迁移无忧方案 1. 为什么需要备份OpenClaw环境 上周我的主力开发机RTX4090D突然显卡故障送修&#xff0c;导致所有OpenClaw自动化流程中断。最痛苦的不是硬件问题&#xff0c;而是重新配置Qwen3-32B镜像环境时&#xff0c;发…...

Sycamore与Leptos、Dioxus对比:如何选择最适合的Rust前端框架

Sycamore与Leptos、Dioxus对比&#xff1a;如何选择最适合的Rust前端框架 【免费下载链接】sycamore A library for creating reactive web apps in Rust and WebAssembly 项目地址: https://gitcode.com/gh_mirrors/sy/sycamore 在Rust前端开发领域&#xff0c;Sycamor…...

淘宝淘金币自动化脚本:每天节省20分钟的终极解决方案

淘宝淘金币自动化脚本&#xff1a;每天节省20分钟的终极解决方案 【免费下载链接】taojinbi 淘宝淘金币自动执行脚本&#xff0c;包含蚂蚁森林收取能量&#xff0c;芭芭农场全任务&#xff0c;解放你的双手 项目地址: https://gitcode.com/gh_mirrors/ta/taojinbi 淘宝淘…...

SKILL语言在数字IC设计中的高级应用:如何优化你的工作流程

SKILL语言在数字IC设计中的高级应用&#xff1a;如何优化你的工作流程 在数字IC设计的复杂世界里&#xff0c;效率就是竞争力。当大多数工程师还在手动点击EDA工具菜单时&#xff0c;掌握SKILL语言的高手已经用几行代码完成了批量操作。这不是魔法&#xff0c;而是SKILL语言赋…...

5种颠覆式UI控件库轮播组件创新用法:从业务痛点到零代码实现

5种颠覆式UI控件库轮播组件创新用法&#xff1a;从业务痛点到零代码实现 【免费下载链接】HandyControl Contains some simple and commonly used WPF controls 项目地址: https://gitcode.com/gh_mirrors/ha/HandyControl 在现代WPF应用开发中&#xff0c;UI控件库的轮…...

Qwen3-14B私有化部署成本分析:一张显卡就能跑,中小企业也玩得转

Qwen3-14B私有化部署成本分析&#xff1a;一张显卡就能跑&#xff0c;中小企业也玩得转 1. 为什么中小企业需要关注Qwen3-14B 在AI技术快速发展的今天&#xff0c;大型语言模型已成为企业数字化转型的重要工具。然而&#xff0c;高昂的部署成本往往让中小企业望而却步。Qwen3…...

如何永久保存微信聊天记录:3步实现数据自主管理的完整指南

如何永久保存微信聊天记录&#xff1a;3步实现数据自主管理的完整指南 【免费下载链接】WeChatMsg 提取微信聊天记录&#xff0c;将其导出成HTML、Word、CSV文档永久保存&#xff0c;对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/W…...

金仓V9智能运维揭秘:如何用国产数据库实现分钟级部署与自动化备份

金仓V9智能运维实战&#xff1a;从分钟级部署到自动化备份的全流程解析 在数字化转型浪潮中&#xff0c;数据库作为企业核心基础设施&#xff0c;其运维效率直接影响业务连续性。金仓数据库V9全平台版凭借智能运维体系&#xff0c;正在重新定义国产数据库的管理标准。本文将深入…...