1. 安装

pnpm i -S vuedraggable@next

2. 导入

import draggable from "vuedraggable";

3. 基本使用

<draggable:list="dragList"item-key="id"ghost-class="_ghost"chosen-class="_chosenClass"animation="300"><template #item="{ element }"><div class="_drag-item">{{ element.name }}</div></template>
</draggable>

参数说明:

  • list:绑定数据
  • item-key: 用于指定每一项唯一的标识
  • ghost-class:设置拖动元素的占位符类名
  • chosen-class:设置被选中目标的样式
  • animation:拖动时的动画效果

更多用法参考vuedraggable 中文网

4. 完整示例-复制即可使用

<template><!-- 上下拖动 --><div class="up-down"><draggableitem-key="id":list="dragList"ghost-class="_ghost"chosen-class="_chosenClass"animation="300"><template #item="{ element }"><div class="_drag-item">{{ element.name }}</div></template></draggable></div>
</template><script lang="ts" setup name='DragUpDown'>
import { Ref, watchEffect } from "vue";
import draggable from "vuedraggable";interface DragListDataModel {id: number,name: string
}interface DragPropsDataModel {modelValue: Array<{id: numbername: string}>
}const props = defineProps<DragPropsDataModel>()// 这里的数据供调试使用,亦可从外部传入数据配合watchEffect使用
const dragList: Ref<DragListDataModel[]> = ref([{id: 1, name: '看万山红遍,层林尽染;漫江碧透,百舸争流。'} {id: 3, name: '怅寥廓,问苍茫大地,谁主沉浮?'}{id: 0, name: '独立寒秋,湘江北去,橘子洲头。'}{id: 2, name: '鹰击长空,鱼翔浅底,万类霜天竞自由。'}{id: 4, name: '携来百侣曾游,忆往昔峥嵘岁月稠。'}{id: 5, name: '恰同学少年,风华正茂;书生意气,挥斥方遒。'}{id: 6, name: '指点江山,激扬文字,粪土当年万户侯。'}{id: 7, name: '曾记否,到中流击水,浪遏飞舟?'}
])watchEffect(() => {if (props.modelValue.length > 0) {dragList.value = props.modelValue}
})
</script><style lang="scss" scoped>
._drag-item {border: solid 1px #eee;padding: 6px 10px;text-align: left;
}._drag-item:hover {cursor: move;
}
._drag-item + ._drag-item {margin-top: 10px;
}
._ghost {border: solid 1px rgb(19, 41, 239);
}
._chosenClass {background-color: #f1f1f1;
}
</style>

5. 最终效果

Vue3使用拖拽插件 - vuedraggable相关推荐

  1. vue3TS+Jsplumb+vuedraggable拖拽插件使用记录

    安装拖拽插件 vue3需下载-@next此版本,否则会出现错误 npm i -S vuedraggable@next npm install sortablejs --save //拖拽组件依赖sor ...

  2. 【组件】前端js拖拽插件 VUE

    [组件]前端js拖拽插件 VUE Vue Draggable - Vue 拖拽组件王者 Vue drag resize - 轻量级,无依赖,可缩放 Vue smooth dnd - 简单动效,上下拖拽 ...

  3. vue3 draggable拖拽

    !!首先安装  vuedraggable npm i -S vuedraggable@next 一定要带上@next,不然就会报错 很恶心!使用建议看官网. 官网:vue.draggable中文文档 ...

  4. sortable 拖拽时互换目标的位置_双端通用型JS拖拽插件的封装与应用

    最近工作中遇到一个需求,需要将一个元素从某位置拖动到另一固定位置后执行某一交互行为,具体效果如下: 这个看似简单的需求,然而实现起来却并不那么顺利.我首先想到的是如何通过哪个现有的插件来快速解决这个问 ...

  5. java se拖动插件_JQuery之拖拽插件

    Jeremy - DragDrop Test !(function($) { $.extend({//获取鼠标当前坐标mouseCoords:function(ev){if(ev.pageX||ev. ...

  6. 拖拽插件jquery.dad.js

    带删除功能: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <ti ...

  7. java se拖动插件_JQuery之拖拽插件实现代码

    而很多页面效果都要用到这些位置.不得已,得练练,得记记. 下面就来说说这个基于 JQuery的简易拖拽插件吧. 按惯例,先说说拖拽的原理,以及搞这么一个东东的步骤: 那什么是拖拽呢? 看名字就知道了: ...

  8. js 拖拽生成html,js拖拽插件 js 拖拽控件生成自定义表单 怎么实现

    想请教一个js的问题,拖拽控件 js 拖拽控件生成自定义表单 怎么实现 说说步骤吧 监听mousedown事件 - 获取鼠标点击元素,判断是否可拖拽 - 设置flag做标记 - 建一个tempDOM, ...

  9. Vue拖拽插件(vuedraggable)

    参考文档: vue.draggable disabled 开启和禁用拖动 - itxst.com 效果如下图: ① 安装插件:yarn add vuedraggable ②引入插件并使用: <t ...

最新文章

  1. 软件工程师不可不知的10个概念
  2. 电大最全计算机应用技术基础答案,电大最新最全计算机应用技术基础答案100%通过率...
  3. docker系列之file基本操作
  4. toFixed()方法
  5. SmartCode Release 4
  6. 产品下级分类显示太宽了,请问在哪调整?
  7. 大神推荐:国内较强的NLP高校实验室有哪些?
  8. python游戏开发的五个案例分享
  9. js判断中文字符长度
  10. 不服来战!PHP 是世界上最好的语言!
  11. spring-data-mongodb查询结果返回指定字段
  12. 记一些tomcat的属性
  13. tcp和udp协议的聊天 和udp协议的时间同步机制-----编码
  14. 从JimmyNews有感于互联网的传播能力
  15. Element中时间校验:结束时间大于开始时间
  16. android 恢复出厂设置 时间,安卓恢复出厂设置
  17. 计算机管理即插即用服务,意外终止Plug and Play(即插即用)服务开启方法
  18. 《Automation in Construction》期刊介绍(SCI 2区)
  19. 网卡82546驱动linux,Linux e1000e网卡驱动
  20. 找素数模板:马氏筛法【复杂度nlgnlgn】

热门文章

  1. android 屏幕横向显示,【报Bug】安卓屏幕切换横屏后屏幕显示一半
  2. notifyDataSetChanged() 动态更新ListView
  3. 有个属于自己的家该多好
  4. 绘制神经元的基本结构图,神经元的结构图简笔画
  5. NR HARQ (四)dynamic codebook
  6. windows下导入docker镜像
  7. 虚拟机安装mac系统,在开机页面无限重启情况
  8. 阿里彭蕾:向上管理的最高境界,不是跪舔老板,而是支撑!
  9. freopen的使用
  10. Choreographer——一个舞蹈指挥家的日常