2025-02-11 vue3拖拽元素案例——来自deepseek
<template> <div class="parent"> <div v-for="(item, index) in items" :key="item.id" class="child" draggable="true" @dragstart="onDragStart(index)" @dragover.prevent="onDragOver(index)" @drop="onDrop(index)" > {{ item.text }} </div> </div> </template> <script> import { ref } from 'vue'; export default { setup() { const items = ref([ { id: 1, text: 'Item 1' }, { id: 2, text: 'Item 2' }, { id: 3, text: 'Item 3' }, { id: 4, text: 'Item 4' }, { id: 5, text: 'Item 5' }, ]); let draggedIndex = null; const onDragStart = (index) => { draggedIndex = index; }; const onDragOver = (index) => { if (draggedIndex === null) return; const draggedItem = items.value[draggedIndex]; items.value.splice(draggedIndex, 1); items.value.splice(index, 0, draggedItem); draggedIndex = index; }; const onDrop = () => { draggedIndex = null; }; return { items, onDragStart, onDragOver, onDrop, }; }, }; </script> <style> .parent { display: flex; flex-wrap: nowrap; gap: 10px; } .child { padding: 20px; background-color: #f0f0f0; border: 1px solid #ccc; cursor: grab; } </style>
-
draggable="true"
: 使子元素可拖拽。 -
@dragstart
: 当开始拖拽时,记录当前拖拽的元素的索引。 -
@dragover.prevent
: 当拖拽的元素经过其他元素时,阻止默认行为,并交换元素的位置。 -
@drop
: 当松开鼠标时,完成拖拽操作。
vue3自带了dragstart、
dragover、
drop
事件,使得拖拽逻辑更简单
分类:
Vue.js 3.0
, 工具类
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
2023-02-11 2023-02-11 如何在AndroidStudio中查看Kotlin的版本