vue div拖拽【转】
vue div拖拽
在前端开发中,拖拽是非常常见的一种方式,但是之前感觉拖拽实现起来比较麻烦,一直未深入研究,现在整理了几个实现方式:
1、原生方式
html部分
1 <div class="div" v-drag ></div>
js部分
1 methods:{}, 2 directives: { 3 drag: { 4 // 指令的定义 5 bind: function (el) { 6 let odiv = el; //获取当前元素 7 el.onmousedown = (e) => { 8 //算出鼠标相对元素的位置 9 let disX = e.clientX - odiv.offsetLeft; 10 let disY = e.clientY - odiv.offsetTop; 11 let left = ''; 12 let top = ''; 13 document.onmousemove = (e)=>{ 14 //用鼠标的位置减去鼠标相对元素的位置,得到元素的位置 15 left = e.clientX - disX; 16 top = e.clientY - disY; 17 //绑定元素位置到positionX和positionY上面 18 //移动当前元素 19 odiv.style.left = left + 'px'; 20 odiv.style.top = top + 'px'; 21 }; 22 document.onmouseup = (e) => { 23 document.onmousemove = null; 24 document.onmouseup = null; 25 }; 26 }; 27 } 28 } 29 }
2、vue 组件 vue-drag-resize
vue-drag-resize 这个组件不但能够实现拖拽功能,还可以实现缩放功能。
加载:
npm i -s vue-drag-resize
使用:
<template> <div id="app"> <vue-drag-resize></vue-drag-resize> </div> </template> import VueDragResize from 'vue-drag-resize'; export default { name: 'app', components: { VueDragResize }, }
详细参数及方法介绍可参考文档 https://www.npmjs.com/package/drag-resize-vue 或博客https://blog.csdn.net/weixin_33957648/article/details/91423751
饮水思源,不忘初心。
要面包,也要有诗和远方。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了