news 2026/6/23 20:44:42

前端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/6/23 5:41:48

VSCode+PlatfoemIO+ESP32-Cam + MB烧录器 入门测试

研究大半天的监控无法打印日志的问题&#xff0c;两个问题1、避免 println&#xff0c;改用 printf 在某些 MB 板上&#xff0c;println 会被 CDC 缓冲吞掉&#xff0c;导致监控无法输出&#xff08;很玄学&#xff0c;但真实存在&#xff09;。2、彻底禁用一切“下载相关行为”…

作者头像 李华
网站建设 2026/6/22 16:00:39

【加密PDF解析避坑指南】:Dify错误处理的5大核心策略与实战技巧

第一章&#xff1a;加密PDF解析的Dify错误处理概述在集成Dify平台进行文档智能解析时&#xff0c;加密PDF文件常引发一系列解析异常。由于PDF加密机制限制了内容的直接读取&#xff0c;Dify默认的解析流程无法获取原始文本&#xff0c;导致任务失败或返回空结果。此类问题不仅影…

作者头像 李华
网站建设 2026/6/22 22:41:07

性能测试入门:使用 Playwright 测量关键 Web 性能指标

如果你正在寻找一种现代、可靠的方式来测量网站性能&#xff0c;Playwright 可能正是你需要的工具。虽然它主要以自动化测试闻名&#xff0c;但其强大的性能监控能力却常常被忽视。在这篇文章中&#xff0c;我将分享如何利用 Playwright 来测量那些影响用户体验的关键性能指标。…

作者头像 李华
网站建设 2026/6/23 19:44:06

从入门到精通:R语言极值分布拟合在气象数据中的4个关键步骤

第一章&#xff1a;R语言极值分布拟合在气象数据中的基本概念极值分析是研究罕见但具有重大影响事件的重要统计方法&#xff0c;广泛应用于气象、水文和金融等领域。在气象学中&#xff0c;极端气温、强降雨或飓风等事件虽发生频率低&#xff0c;但其潜在破坏力巨大。R语言提供…

作者头像 李华
网站建设 2026/6/23 19:44:05

仅1%人掌握的建模技术:R语言金融相关性矩阵稀疏化处理实战

第一章&#xff1a;金融风险的 R 语言相关性矩阵在金融风险管理中&#xff0c;资产收益率之间的相关性是评估投资组合波动性和分散化效果的核心指标。R 语言提供了强大的统计计算与可视化能力&#xff0c;能够高效构建和分析相关性矩阵。通过计算不同金融资产收益率之间的皮尔逊…

作者头像 李华