news 2026/8/15 16:29:48

前端vue3 web端中实现拖拽功能实现列表排序

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
前端vue3 web端中实现拖拽功能实现列表排序

类似这样的我现在要实现能够拖拽 直接能够让这个列表项 切换顺序

我们可以使用前端库 也可以使用原生自带的功能

我直接贴代码了

template

<el-form-item label="选择书籍:" class="book-select-container"> <div class="booklist-container" ref="bookList"> <div class="book-item" v-for="(item, index) in selectBookList" :key="item.id" :draggable="true" @dragstart="onBookDragStart($event, index)" @dragover.prevent="onBookDragOver($event, index)" @drop="onBookDrop($event, index)" @dragenter="onBookDragEnter($event, index)" @dragleave="onBookDragLeave($event, index)" > <div class="index"> <div class="nnumber">{{ index + 1 }}</div> </div> <div class="novelName">{{ item.novelName }}</div> </div> </div> </el-form-item>

script

// 书籍拖拽相关函数 const onBookDragStart = (event, index) => { event.dataTransfer.setData('text/plain', index.toString()) event.target.classList.add('dragging') } const onBookDragOver = (event, index) => { event.preventDefault() event.currentTarget.classList.add('drag-over') } const onBookDragEnter = (event, index) => { event.preventDefault() } const onBookDragLeave = (event, index) => { event.currentTarget.classList.remove('drag-over') } const onBookDrop = (event, index) => { event.preventDefault() event.currentTarget.classList.remove('drag-over') const dragIndex = parseInt(event.dataTransfer.getData('text/plain')) const dropIndex = index if (dragIndex !== dropIndex) { const itemToMove = selectBookList.value[dragIndex] selectBookList.value.splice(dragIndex, 1) selectBookList.value.splice(dropIndex, 0, itemToMove) // 触发响应式更新 selectBookList.value = [...selectBookList.value] ElMessage.success('书籍顺序已调整') } // 移除拖拽类 document.querySelectorAll('.book-item').forEach(el => { el.classList.remove('dragging') }) }

这个是最简单的 一个模板了

至于说样式的开发 就看怎么写了 原声的拖拽就是这样写的

不使用任何第三方库,纯原生HTML5拖拽API

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/15 16:20:13

用idea打开第3方Jar包文件,并查看其源代码

问题 遇到了需要用idea打开jar包文件&#xff0c;查看源代码的场景 怎么处理 在原来的 idea打开的java项目中的目录中&#xff0c;添加上 该jar包&#xff0c;然后 重启idea就可以看到 jar包中反编译的内容了 类似下面的效果其他方法 在 IntelliJ IDEA 中查看网上下载的 JAR 包…

作者头像 李华
网站建设 2026/8/15 23:42:00

探索英飞凌电动汽车电机控制器参考方案

电机控制器&#xff0c;英飞凌电动汽车参考方案&#xff0c;包含原理图(pdf版)&#xff0c;和代码&#xff0c;基于英飞凌TC27xC平台最近在研究电动汽车相关技术&#xff0c;发现英飞凌基于 TC27xC 平台的电机控制器参考方案真的很有意思&#xff0c;今天就来和大家分享一下。 …

作者头像 李华
网站建设 2026/8/15 17:57:32

临床数据分层分析避坑手册:R语言实战中90%新手都会忽略的关键细节

第一章&#xff1a;临床数据分层分析的核心挑战与R语言优势在临床研究中&#xff0c;数据通常具有高维度、异质性和缺失值多等特点&#xff0c;对分层分析提出了严峻挑战。传统的统计工具在处理复杂协变量交互、动态分组和可视化呈现时往往力不从心。而R语言凭借其强大的统计建…

作者头像 李华
网站建设 2026/8/15 11:09:38

Java微信分享-签名算法实现

文章目录前言前言 工具类 - WxJsapiSignature.java import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.UUID;public class WxJsapiSignature {/*** 生成微信 JS-SDK 签名* param jsapiTicket 微信 jsapi_ticket* param …

作者头像 李华
网站建设 2026/8/14 18:48:09

机器学习算法:随机梯度下降算法

目录 动量法 是什么&#xff1f; 从数学上理解 案例&#xff1a;寻找最佳学习节奏 公式推导与解析 1. 基础梯度下降回顾 2. 引入动量项 3. 物理意义与优势 扩展&#xff1a;NAG (Nesterov Accelerated Gradient) 优缺点和适用场景 完整代码示例&#xff1a;在回归问题…

作者头像 李华
网站建设 2026/8/15 22:03:03

极端天气频发,我们该如何应对?,基于R语言的气象归因分析全流程解析

第一章&#xff1a;气象数据的 R 语言极端事件归因 在气候变化研究中&#xff0c;极端天气事件的归因分析是评估人类活动对气候影响的关键手段。R 语言凭借其强大的统计建模与可视化能力&#xff0c;成为处理气象时间序列数据和开展归因研究的首选工具。通过整合观测数据、气候…

作者头像 李华