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

vue2x添加一个元素拖拽功能

拖拽元素绑定:

 
<div class="add-twin-wrap-container"><div class="add-twin-wrap" @click.stop><p class="title" @mousedown="onDragStart">添加场景类型实例<span class="icon iconfont avw-cancel" @click="$emit('close-dialog')"></span></p><div class="twin-cont">...........</div></div></div>

初始化元素样式:

  mounted() {// 初始化 left/top,使拖动计算准确const dialog = this.$el.querySelector('.add-twin-wrap');const rect = dialog.getBoundingClientRect();dialog.style.left = `${rect.left}px`;dialog.style.top = `${rect.top}px`;},

 

添加拖拽监听方法:

methods: {// ...原来的方法不动onDragStart(e) {const dialog = this.$el.querySelector('.add-twin-wrap');const rect = dialog.getBoundingClientRect();// 鼠标点击位置相对弹窗左上角的偏移const offsetX = e.clientX - rect.left;const offsetY = e.clientY - rect.top;// 防止选中文字document.body.style.userSelect = 'none';const onMouseMove = (moveEvent) => {const left = moveEvent.clientX - offsetX;const top = moveEvent.clientY - offsetY;// 限制不要拖出屏幕const maxLeft = window.innerWidth - rect.width;const maxTop = window.innerHeight - rect.height;dialog.style.left = Math.min(Math.max(0, left), maxLeft) + 'px';dialog.style.top = Math.min(Math.max(0, top), maxTop) + 'px';};const onMouseUp = () => {document.removeEventListener('mousemove', onMouseMove);document.removeEventListener('mouseup', onMouseUp);document.body.style.userSelect = '';};document.addEventListener('mousemove', onMouseMove);document.addEventListener('mouseup', onMouseUp);},
}

 

http://www.jsqmd.com/news/25559/

相关文章:

  • 解决 pnpm 安装 Electron 缺少二进制文件的问题
  • 基于libsvm的支持向量机在MATLAB中的实现
  • 【ACM出版 | 高录用快见刊、检索】第五届工商管理与数据科学国际学术会议 (BADS 2025)
  • 2025年酒精回收塔生产厂家权威推荐榜单:DMF回收塔/甲醇回收塔/乙醇回收塔源头厂家精选
  • 2025 年投入式液位计厂家联系方式推荐,杭州浙达精益提供专业液位测量设备与技术支持
  • 直扩信号参数估计:载频、码速率和扩频增益
  • 2025 年防爆位移传感器厂家联系方式推荐,杭州浙达精益提供专业设备与可靠技术支持
  • 2025年振弦式频率读数仪609供货厂家权威推荐榜单:读数仪609/测读仪读数仪609/土木工程用609读数仪源头厂家精选
  • 2025 年线性位移传感器厂家联系方式推荐,杭州浙达精益提供专业设备与可靠技术支持
  • 直播|均降 40% 的 GPU 成本,大规模 Agent 部署和运维的捷径是什么?
  • postman 汉化和破~解版来了 (Windows用户进)
  • JavaScript中的闭包:概念与应用
  • 2025年山东出租履带蜘蛛车平台权威推荐榜单:租赁蜘蛛车/租赁履带蜘蛛车/蜘蛛车出租源头公司精选
  • 2025年商标注册机构权威推荐榜:国内商标、国际商标、图形商标、文字商标全流程服务厂家精选
  • 2025年户外面料厂家推荐排行榜:尼龙/涤纶/尼龙格子/珍珠点/登山布/户外速干/瑜伽/梭织/TR消光面料公司推荐
  • 2025年铝单板厂家推荐排行榜,氟碳铝单板,仿木纹铝单板,仿石材铝单板,幕墙装饰铝单板公司精选
  • 基于Matlab的深度堆叠自编码器(SAE)实现与分类应用
  • 2025 年保研夏令营辅导,保研模拟面试,保研面试经验,保研面试辅导机构最新推荐,聚焦资质、案例、售后的五家机构深度解读!
  • WComputer2027.1下载 WComputer2027.1 downloadWComputer2027.1ダウンロード
  • 2025 年保研科研项目,保研科研辅导,保研背景规划,保研预推免辅导机构最新推荐,聚焦资质、案例、售后的五家机构深度解读
  • 2025 年工业不锈钢管,激光切割不锈钢管,铁管不锈钢管厂家最新推荐,产能、专利、环保三维数据透视
  • 2025 年不锈钢管圆筒,焊管不锈钢管,花纹不锈钢管,菱形不锈钢管厂家最新推荐,技术实力与市场口碑深度解析
  • 【大数据高并发核心场景实战】 数据持久化层 - 查询分离
  • 2025 年加工不锈钢管,装饰不锈钢管,不锈钢管复合管厂家最新推荐,实力品牌深度解析采购无忧之选!
  • 2025 保研辅导,保研机构,保研星途,保研规划机构最新推荐,聚焦资质、案例、售后的五家机构深度解读
  • 2025年气缸管厂家权威推荐榜:精密气缸管,不锈钢气缸管,珩磨气缸管,薄壁气缸管,焊接气缸管,冷拔气缸管,食品级气缸管,海洋用气缸管专业供应商
  • 2025年真空泵厂家权威推荐榜:涡旋真空泵/无油涡旋真空泵/小型微型真空泵/真空泵机组/罗茨螺杆单级旋片真空泵精选指南
  • 20251029
  • 2025年反应釜厂家权威推荐榜:搪玻璃反应釜/搪瓷反应釜/开式闭式反应釜/非标搪玻璃反应釜专业选购指南
  • 2025年北京炸鸡加盟公司权威推荐:上海炸鸡加盟哪家赚钱渠道/南京炸鸡十大品牌公司/武汉炸鸡公司源头企业精选