vue 中基于html5 drag drap的拖放

这篇博客详细介绍了如何在Vue项目中使用HTML5的drag and drop API实现元素的拖放功能,包括从左侧区域拖动到右侧区域并允许在右侧区域内部自由拖动。博主通过三个案例逐步解析了实现过程,涉及的关键点包括元素的position设置、事件绑定、拖放事件处理以及Vue的双向数据绑定在拖放操作中的应用。
摘要由CSDN通过智能技术生成

事情是这样的,右边有各种控件,可以拖动到右边自由区,在自由区内可以随意拖动。

vue 中基于html5 drag drap的拖放
案例一:

开始的我,so easy! 通过绑定元素的mousedown 事件,监听鼠标的mousemove,和mouseup 事件,于是我轻松实现了同一区域内元素可以拖着跑,上代码!

move (e) {
 let odiv = e.target // 获取目标元素
 // 算出鼠标相对元素的位置
 let disX = e.clientX - odiv.offsetLeft
 let disY = e.clientY - odiv.offsetTop
 document.onmousemove = e => {

// 鼠标按下并移动的事件
// 用鼠标的位置减去鼠标相对元素的位置,得到元素的位置

 let left = e.clientX - disX
 let top = e.clientY - disY
 // 移动当前元素
 odiv.style.left = left + 'px'
 odiv.style.top = top + 'px'
 }
 document.onmouseup = e => {
 document.onmousemove = null
 document.onmouseup = null
 }
 }

注意一点,被拖拽对象区域要设置position:relative, 否则的元素会自己抖动。

以上代码并不能满足需要,要左右布局,左边的拖到右边,在右边区域随便拖动。

案例二:

好吧,首先我来布个局,左右布局,给元素绑定事件,上代码!

<template>
 <div style='position: relative;'>
 <el-container>
 <el-aside width="300px">
 <ul>
 <li class='liStyle' v-for="item in tags" :key='item.id'>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值