vue通过draggable实现拖拽功能

news2024/11/21 0:33:23

1. 官方文档

2. 安装

```
yarn add vuedraggable  
npm i -S vuedraggable
<script src="//cdnjs.cloudflare.com/ajax/libs/Vue.Draggable/2.20.0/vuedraggable.umd.min.js"></script>
```

3. 其他组件:

sortablejs.js拖拽
非官网文档

    npm install sortablejs --save
    <script src="https://cdnjs.cloudflare.com/ajax/libs/Sortable/1.8.3/Sortable.min.js"></script>

4.属性说明

属性名称说明
group:group= “name”,相同的组之间可以相互拖拽 或者 { name: “…”, pull: [true, false, ‘clone’, array , function], put: [true, false, array , function] }
sort:sort= “true”,是否开启内部排序,如果设置为false,它所在组无法排序,在其他组可以拖动排序
delay:delay= “0”, 鼠标按下后多久可以拖拽
touchStartThreshold鼠标移动多少px才能拖动元素
disabled:disabled= “true”,是否启用拖拽组件
animation拖动时的动画效果,还是很酷的,数字类型。如设置animation=1000表示1秒过渡动画效果
handle:handle=“.mover” 只有当鼠标移动到css为mover类的元素上才能拖动
filter:filter=“.unmover” 设置了unmover样式的元素不允许拖动
draggable:draggable=“.item” 那些元素是可以被拖动的
ghostClass:ghostClass=“ghostClass” 设置拖动元素的占位符类名,你的自定义样式可能需要加!important才能生效,并把forceFallback属性设置成true
chosenClass:ghostClass=“hostClass” 被选中目标的样式,你的自定义样式可能需要加!important才能生效,并把forceFallback属性设置成true
dragClass:dragClass="dragClass"拖动元素的样式,你的自定义样式可能需要加!important才能生效,并把forceFallback属性设置成true
dataIdAttrdataIdAttr: ‘data-id’
forceFallback默认false,忽略HTML5的拖拽行为,因为h5里有个属性也是可以拖动,你要自定义ghostClass chosenClass dragClass样式时,建议forceFallback设置为true
fallbackClass默认false,克隆的DOM元素的类名
allbackOnBody默认false,克隆的元素添加到文档的body中
fallbackTolerance拖拽之前应该移动的px
scroll默认true,有滚动区域是否允许拖拽
scrollFn滚动回调函数
scrollSensitivity距离滚动区域多远时,滚动滚动条
scrollSpeed滚动速度

5.案例:

image.png

<template>
  <div>
    <!-- handle=".mover" mover的calss才可以拖动 -->
    <!-- draggable=".moveItem" moveItem的calss才可以换位置 -->
    <!-- filter=".undraggable" undraggable的class禁止拖拽 -->
    <!--  group="people" people这一组里面的可以拖拽 -->
    <draggable v-model="myArray" chosen-class="chosen" force-fallback="true" handle=".mover" draggable=".moveItem" filter=".undraggable" group="people" animation="1000">
      <transition-group>
        <div v-for="element in myArray" :key="element.id" class="item" :class="[element.class]">
          <div v-if="element.class=='moveItem'" class="btnMove mover" />
          <div v-else class="btnMove1" />
          <div>{{ element.name }}</div>
        </div>
      </transition-group>
    </draggable>
  </div>
</template>
<script>
import draggable from 'vuedraggable'
export default {
  components: {
    draggable
  },
  data() {
    return {
      myArray: [
        { people: 'cn', id: 1, name: 'www.itxst.com', class: 'moveItem' },
        { people: 'cn', id: 2, name: 'www.baidu.com', class: 'moveItem' },
        { people: 'cn', id: 3, name: 'www.taobao.com', class: 'moveItem' },
        { people: 'us', id: 4, name: 'www.google.com', class: 'undraggable' }
      ]
    }
  },
  watch: {
    myArray(value) {
      console.log(value)
    }
  }
}
</script>
<style lang="scss" scoped>
.item{
    cursor: pointer;
    line-height: 30px;
    display: flex;
    align-items: center;
    user-select: none;
    margin-top: 10px;
    .btnMove{
      width: 30px;
      height: 40px;
      background-image: url('~@/assets/img/moverImg.png');
      background-repeat: no-repeat;
      background-position: center center;
      cursor: move;
      display: inline-block;
  }
  .btnMove1{
    width: 30px;
    height: 40px;
    display: inline-block;
  }
}
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/961461.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java 集合框架3

一、集合框架分类 二、 关于Map接口的常用类 1.HashMap HashMap类是Map接口的子类&#xff0c;是处理无序键值对集合的 HashMap特征1.允许有null键和null值2.数据保存是无序的3.重复的键被算作一个数据 i.HashMap构造方法 //HashMap() 构造一个初始存储空间为16&#xff0c;负…

zemax混合式非序列模拟

基础设置&#xff1a; 3D视图效果&#xff1a; 接下来用非序列模式设计一个多焦透镜 平行光束经过多焦透镜时&#xff0c;会汇聚在不同焦距处 非序列模式的编辑器如图&#xff1a; 注意不要点击左侧的非序列模式&#xff0c;那个时纯粹的非序列&#xff0c;会清除序列模式的数…

Revit SDK 介绍:AutoStamp 自动水印 AutoUpdate 自动更新 CancelSave

前言 这三个例子都是通过注册事件来完成相应的工作&#xff0c;内容比较简单。 内容 事件参考博客&#xff1a;Revit API&#xff1a;Events 事件总览 AutoStamp 自动水印 使用到的事件&#xff1a; application.ControlledApplication.ViewPrinting application.Controll…

时序预测 | MATLAB实现EEMD-SSA-LSTM、EEMD-LSTM、SSA-LSTM、LSTM时间序列预测对比

时序预测 | MATLAB实现EEMD-SSA-LSTM、EEMD-LSTM、SSA-LSTM、LSTM时间序列预测对比 目录 时序预测 | MATLAB实现EEMD-SSA-LSTM、EEMD-LSTM、SSA-LSTM、LSTM时间序列预测对比预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 时序预测 | MATLAB实现EEMD-SSA-LSTM、E…

第一章辩证唯物论,考点七思维导图

逻辑框架 考点七思维导图&#xff1a;

【【萌新的STM32学习-27--USART异步通信配置步骤】】

萌新的STM32学习-27–USART异步通信配置步骤 USART/UART 异步通信配置步骤 1.配置串口工作参数 HAL_UART_Init() 我们会在此处调用MSP中的回调函数 2.串口底层初始化 用户定义HAL_UART_MspInit() 配置GPIO NVIC CLOCK 等 3.开启串口异步接收中断 HAL_UART_Receive_IT() 4.…

基于简单的信息变换实现自然语言模型

题目:基于简单的信息变换实现自然语言模型 摘要:在自然语言处理中,自然语言模型是至关重要的。本论文提出了一种基于简单的信息变换实现自然语言模型的方法。该方法将输入信息进行一系列的信息变换,如分割、属性、等效替换、增加删除等变换,与原始信息进行比较,得知信息是…

解决window安装docker报错问题

第一次打开Docker Desktop后提示错误 试了网上版本都没用&#xff0c;后面发现是电脑没有下载相关虚拟机&#xff1a; 先点击链接下载wsl2&#xff0c;下载后命令行执行&#xff1a;dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /…

Jenkins发送邮件(简洁版)

需求背景 Jenkins构建结束需要通知客户下载项目WAR包&#xff0c;太麻烦且构建时间久的话可能忘记通知客户&#xff0c;想要构建结束自动邮件通知客户。 实现方法 # 安装mailx command -v mailx &> /dev/null || sudo yum -y install mailx# 发送邮件 recipient"ch…

深入解析即时通讯App开发中的关键技术

即时通讯App开发在现代社交和通信领域中扮演着重要的角色。随着移动设备的普及和网络的高速发展&#xff0c;人们对即时通讯工具的需求不断增加。本篇文章将深入探讨即时通讯App开发中的关键技术&#xff0c;帮助读者了解该领域的最新动态和技术趋势。 基础架构和通信协议 现…

Fair|Fur —— Fur Workflow

Hair Utils工具架 Hair Utils工具架上的Add Fur工具&#xff0c;对任何groom是一个好的起点&#xff0c;会对所选的skin自动创建Guide Groom和Hair Generate对象&#xff1b;如是带动画的skin&#xff0c;还会创建Guide Deform对象&#xff1b; Hair Utils工具架上的Create Gui…

WindowsServer2019安装.NET3.5

WindowsServer2019安装.NET3.5报0x800f0950 解决方法&#xff1a;复制WindowsServer2019镜像到目的操作系统 右键“此电脑”&#xff0c;以管理员权限打开服务器管理界面。 点击“添加角色和功能”。 然后一直下一步&#xff0c;找到要添加的.NET3.5功能即可。 ​​​​​​​设…

.NET Framework 3.5安装教程

一、概述 使用VS编程时&#xff0c;碰到需要安装低版本.NET Framework框架的第三方库文件。 环境&#xff1a; 操作系统 Window10 软件版本VS2015 二、安装 1、在Win10搜索框输入“启动或关闭 Windows功能”&#xff0c;然后点击“启动或关闭 Windows功能”项&#xff0c;如下图…

复旦MBA姜璐:勇往直前,成长永无止境

日月光华&#xff0c;旦复旦兮&#xff01;复旦MBA如同一个巨大的磁场&#xff0c;吸引了诸多来自五湖四海、各行各业的职场精英。从初入职场的青涩懵懂到如今的独当一面专业干练&#xff0c;他们逐渐成长为职场的中坚力量&#xff0c;在各自领域内发光发热。作为新时代的青年&…

汽车以太网协议栈

《大师说》栏目上线啦# 《大师说》栏目是怿星科技2023年推出的深度思考栏目&#xff0c;通过邀请内部专家&#xff0c;针对智能汽车行业发展、技术趋势等输出个性化的观点。每期一位大师&#xff0c;每位一个话题&#xff0c;本期由我们怿星的CTO虞胜伟&#xff0c;进行分享。…

盘点狼人杀中的强神与弱神 并评价操作体验

最初 强神是大家对猎人的称呼&#xff0c;但随着板子的增加 强神渐渐变成了强神神牌的统称。 狼人杀发展至今板子已经非常多了&#xff0c;而每个板子都会有不同的角色。 相同的是 大部分都会希望拿到一张强力神牌&#xff0c;这样能大大提高我们玩家的游戏体验&#xff0c;但其…

Hadoop 3.2.4 集群搭建详细图文教程

目录 一、集群简介 二、Hadoop 集群部署方式 三、集群安装 3.1 集群角色规划 3.2 服务器基础环境准备 3.2.1 环境初始化 3.2.2 ssh 免密登录&#xff08;在 hadoop01 上执行&#xff09; 3.2.3 各个节点上安装 JDK 1.8 环境 3.3 安装 Hadoop 3.4 Hadoop 安装包目…

如何使用 Amazon EMR 在 Amazon EKS 上构建可靠、高效、用户友好的 Spark 平台

这是 SafeGraph 技术主管经理 Nan Zhu 与亚马逊云科技高级解决方案架构师 Dave Thibault 共同撰写的特约文章。 SafeGraph 是一家地理空间数据公司&#xff0c;管理着全球超过 4100 万个兴趣点&#xff08;POI&#xff0c;Point of Interest&#xff09;&#xff0c;提供品牌隶…

R语言nlme、nlmer、lme4用(非)线性混合模型non-linear mixed model分析藻类数据实例...

原文链接&#xff1a;http://tecdat.cn/?p23426 混合线性模型&#xff0c;又名多层线性模型(Hierarchical linear model)。它比较适合处理嵌套设计(nested)的实验和调查研究数据&#xff08;点击文末“阅读原文”获取完整代码数据&#xff09;。 相关视频 序言 此外&#xff0…

基于随机森林的otto商品分类

数据集介绍 Otto Group数据集来源于《Otto Group Product Classification Challenge》。Otto集团是世界上最大的电子商务公司之一&#xff0c;在20多个国家拥有子公司。我们每天在全球销售数百万种产品&#xff0c;在我们的产品线中添加了数千种产品。 我们公司对我们产品性能…