news 2026/11/5 12:41:26

前端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/11/5 12:31:32

刷到 “网安月薪 3 万” 就心动?先打住!这 4 个坑一定要绕开!

前几天收到个私信&#xff0c;大二学生说 “跟风报了网安培训班&#xff0c;学了半年只会跑 Nessus 扫漏洞&#xff0c;投简历全石沉大海”—— 其实不是他学得差&#xff0c;是一开始就踩了入行误区。 现在网上的说法&#xff0c;很容易让人脑子一热就扎进来&#xff0c;但真…

作者头像 李华
网站建设 2026/11/4 3:02:03

从零搭建量子计算开发环境:镜像缓存构建的4个核心原则与实操技巧

第一章&#xff1a;量子计算开发环境概述量子计算作为下一代计算范式的前沿领域&#xff0c;其开发环境的搭建是进入该领域的第一步。与传统软件开发不同&#xff0c;量子计算依赖于特定的量子编程框架和模拟器&#xff0c;以支持量子比特操作、量子线路构建以及结果测量等核心…

作者头像 李华
网站建设 2026/11/3 2:09:34

针对一个嵌入式AI视觉http后端系统的设计

AI视觉后端系统详细设计文档 个人专著《C++元编程与通用设计模式实现》由清华大学出版社出版。该书内容源于工业级项目实践,出版后市场反馈积极(已加印)。其专业价值获得了图书馆系统的广泛认可:不仅被中国国家图书馆作为流通与保存本收藏,还被近半数省级公共图书馆及清华…

作者头像 李华
网站建设 2026/11/4 10:33:26

HTTP 无状态与 Cookie 状态保持机制详解

HTTP 无状态与 Cookie 状态保持机制详解 一、背景&#xff1a;HTTP 真的是“无状态”吗&#xff1f; HTTP 被称为无状态协议&#xff0c;并不是说它完全无法“记住”用户&#xff0c;而是&#xff1a; 每一次 HTTP 请求在协议层面都是相互独立的服务器不会天然保存客户端的上下…

作者头像 李华
网站建设 2026/11/4 9:48:57

计算机网络基础

网络定义 多台设备通过连接介质&#xff0c;能互相传数据&#xff0c;共享资源的集合 协议&#xff1a;设备之间的沟通规则 拓扑结构 网络设备的物理连接方式 星型&#xff1a;就是有一个中间的设备转一下 总线型&#xff1a;学校机房那种所有设备连着一台设备 环型&#xff1a…

作者头像 李华