vue实现div拖拽互换位置

关于实现div拖拽互换位置,其中一种方法可用transition-group标签实现

复制代码
 1   <transition-group tag="div">
 2       <div
 3         class="timesharingScreenCharts"
 4         v-for="item in datas"
 5         :key="item.key"
 6         draggable="true"
 7         @dragend="handleDragEnd($event, item)"
 8         @dragstart="handleDragStart($event, item)"
 9         @dragenter="handleDragEnter($event, item)"
10         @dragover.prevent="handleDragOver($event, item)">
11         <div class="timesharingTittle">
12           <span @click="diveToBondResearchDetail(item)">{{item.name}}</span>
13         </div>
14         <div class="timesharingContent">
15           <MinuteChart
16             ref="minuteChild"
17             :code="code"
18             :stockCode="stockCode"
19             :exchangeCode="exchangeCode"
20             :preClosePrice="preClosePrice">
21           </MinuteChart>
22         </div>
23       </div>
24     </transition-group>
复制代码
复制代码
 1 handleDragStart (e, item) {
 2   this.dragging = item
 3 },
 4 handleDragEnd (e, item) {
 5   this.dragging = null
 6 },
 7 handleDragOver (e) {
 8   e.dataTransfer.dropEffect = 'move'
 9 },
10 handleDragEnter (e, item) {
11   e.dataTransfer.effectAllowed = 'move'
12   if (item === this.dragging) {
13      return
14    }
15    const newItems = [...this.datas]
16    const src = newItems.indexOf(this.dragging)
17    const dst = newItems.indexOf(item)
18    newItems.splice(dst, 0, ...newItems.splice(src, 1))
19    this.datas = newItems
20 }
复制代码

 

这里拖动标题为‘中航转债1’的div与标题为‘大参林转债’的div,交换位置,也可上下交换

posted @   借晚风叙旧  阅读(1716)  评论(2编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
点击右上角即可分享
微信分享提示