广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Vue.Draggable实现交换位置
  • 654
分享到

Vue.Draggable实现交换位置

2024-04-02 19:04:59 654人浏览 安东尼
摘要

Vue.Draggable实现交换位置,供大家参考,具体内容如下 前言 最近的一个项目接触了到了Vue.Draggable这个组件。不过我们的需求和Vue.Draggable这个组件

Vue.Draggable实现交换位置,供大家参考,具体内容如下

前言

最近的一个项目接触了到了Vue.Draggable这个组件。不过我们的需求和Vue.Draggable这个组件所支持的有些出入。这个拖拽组件属于插入的模式。一但拖拽的是相间的元素(中间隔着几个元素),那么拖拽元素就会占据被拖拽元素的位置,而后续元素位置逐级向下减一。

如下图:

c拖拽到a的位置,表现为c插入到a的前面。所以变为了cab。

需求

实现交换而非插入及上图要变成(cba)

实现方式

想要阻止它插入是不可能,我们只能等它插入结束后对我们想要的元素进行操作。比如拿到头和尾部两个索引。交换他们在数组中的位置。需要注意的是,因为拖拽时已经改变数组里面元素的位置了,因此我们需要在拖拽前copy一个和原数组一样的数组。

实现步骤

1、 选择一个适合自己的方法,需要能够获得开始索引和结束索引
end,sort,update都可以

2、深拷贝

copyList(){
   this.copyList=this.list.slice(0)
}

3、通过索引来操作copyList数组位置

const item=this.copyList[oldIndex]
this.copyList.splice(oldIndex, 1, this.copyList[newIndex]);
this.copyList.splice(newIndex, 1, item);

4、将copyList赋值给list,并在结尾处获得新的拷贝的copyList

this.list=this.copyList
this.copyList = this.list.slice(0);

全部代码

import draggable from "@/vuedraggable";
let id = 1;
export default {
  name: "simple",
  display: "Simple",
  order: 0,
  components: {
    draggable,
  },
  data() {
    return {
      enabled: true,
      list: [{ name: "a" }, { name: "b" }, { name: "c" }],
      dragging: false,
      index: 0,
      copyList: [],
    };
  },
  computed: {
    draggingInfo() {
      return this.dragging ? "under drag" : "";
    },
  },
  created() {
    this.copyList = this.list.slice(0);
  },
  methods: {
    add: function () {
      this.list.push({ name: "Juan " + id, id: id++ });
    },
    replace: function () {
      this.list = [{ name: "Edgard", id: id++ }];
    },
    end({ oldIndex, newIndex }) {
      const item = this.copyList[oldIndex];
      this.copyList.splice(oldIndex, 1, this.copyList[newIndex]);
      this.copyList.splice(newIndex, 1, item);
      this.list = this.copyList;
      this.copyList = this.list.slice(0);
    },
  }
};
<draggable
        :list="list"
        :disabled="!enabled"
        class="list-group"
        ghost-class="ghost"
        :move="checkMove"
        @end="end"
        @sort="sort"
        @update="update"
        @start="start"
      >
  <div class="list-group-item" v-for="element in list" :key="element.name">{{ element.name }}</div>
</draggable>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: Vue.Draggable实现交换位置

本文链接: https://www.lsjlt.com/news/145177.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Vue.Draggable实现交换位置
    Vue.Draggable实现交换位置,供大家参考,具体内容如下 前言 最近的一个项目接触了到了Vue.Draggable这个组件。不过我们的需求和Vue.Draggable这个组件...
    99+
    2022-11-13
  • Vue.Draggable怎么实现交换位置
    这篇“Vue.Draggable怎么实现交换位置”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Vue.Draggable怎么...
    99+
    2023-06-29
  • vue实现拖拽交换位置
    本文实例为大家分享了vue实现拖拽交换位置的具体代码,供大家参考,具体内容如下 <template>   <div class="root">     <...
    99+
    2022-11-13
  • vue怎么实现拖拽交换位置
    这篇文章主要介绍“vue怎么实现拖拽交换位置”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vue怎么实现拖拽交换位置”文章能帮助大家解决问题。具体代码如下<template> ...
    99+
    2023-06-29
  • Android如何使用RecycleView实现拖拽交换item位置
    小编这次要给大家分享的是Android如何使用RecycleView实现拖拽交换item位置,文章内容丰富,感兴趣的小伙伴可以来了解一下,希望大家阅读完这篇文章之后能够有所收获。老规矩,先来一张效果图:相比起ListView而言,Recyc...
    99+
    2023-05-30
    recycleview android recycle
  • php如何实现替换位置
    这篇“php如何实现替换位置”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php如何实现替换位置”文章吧。php实现替换位置...
    99+
    2023-07-04
  • Android的RecyclerView实现列表拖动(移动顺序)交换数据位置
    先看效果图 这是拖动前的图片 这是拖动列表改变位置后的图片 这里放上视频演示 RecyclerView实现列表拖动交换数据位置 主活动MainActivity2类代码如下 import androidx.appcompat...
    99+
    2023-08-30
    android java 开发语言
  • python换位密码及换位解密转置加密怎么实现
    这篇文章主要介绍了python换位密码及换位解密转置加密怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇python换位密码及换位解密转置加密怎么实现文章都会有所收获,下面我们一起来看看吧。换位密码Tra...
    99+
    2023-06-30
  • react-dnd实现任意拖动与互换位置
    本文实例为大家分享了react-dnd实现任意拖动与互换位置的具体代码,供大家参考,具体内容如下 react-dnd用法 hooks组件 1.使用DndProvider定义一个可以拖...
    99+
    2022-11-13
  • javascript拖曳互换div的位置实现示例
    1 实现原理 利用dom元素的dragstart/ondragover/ondrop事件完成,在拖曳开始的时候获取到拖曳元素,然后允许拖动,最后鼠标抬起后放到新的位置;这里用到了ev...
    99+
    2022-11-12
  • Android RecyclerView实现瀑布流,图片自适应高度,不闪烁,解决位置交换
    记录一下以前自己代码中用到过代码效果,也做个备份,省的以后代码找不到,大家也可以参考参考,也许看过网上某些笔记,但是不记得了链接了,有问题可以联系本人 以下会写从布局到java...
    99+
    2022-06-06
    图片 recyclerview 瀑布 瀑布流 自适应 Android
  • Vue实现DOM元素拖放互换位置示例
    目录一、拖放和释放二、可拖拽属性三、DataTransfer3.1 属性3.2 方法四、DataTransferItem4.1 属性4.2 方法五、DataTransferItemL...
    99+
    2023-01-28
    Vue DOM拖放互换 Vue DOM拖放
  • Numpy数组的转置和轴交换如何实现
    这篇“Numpy数组的转置和轴交换如何实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Numpy数组的转置和轴交换如何实现...
    99+
    2023-07-05
  • C#实现单位换算器
    本文实例为大家分享了C#实现单位换算器的具体代码,供大家参考,具体内容如下 一、阐述 进制间转换:十六进制、十进制、八进制、二进制。长度间转换:毫米、厘米、米、公里、英寸、英尺、码。...
    99+
    2022-11-13
  • Java实现单位换算功能
    本文实例为大家分享了Java实现单位换算功能的具体代码,供大家参考,具体内容如下 使用枚举进行简单计算 只加入了一些简单常用的单位,如有需要自行添加,以标准单位为基准 packag...
    99+
    2022-11-13
  • es6如何实现变量交换
    本篇内容主要讲解“es6如何实现变量交换”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“es6如何实现变量交换”吧! 变量交换方法:1...
    99+
    2022-10-19
  • Python 如何实现变量交换
    简洁优雅的 C 写法: int a = 1;  int b = 2;  int temp;  temp = a;  a = b;  b = temp;  简洁优雅的 Python 写...
    99+
    2022-11-13
  • 交换机的基本配置实验报告
    实验三 交换机的基本配置(2学时) 一、实验目的与要求 学习交换机的配置,熟练进行交换机的配置操作。 二、任务描述 交换机的基本配置主要有:给设备命名、登录信息、设置特权密码、VTY密码及Telnet...
    99+
    2023-10-09
    网络 运维 服务器
  • 如何使用jQuery实现两个div中按钮互换位置
    这篇文章将为大家详细讲解有关如何使用jQuery实现两个div中按钮互换位置,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。效果如下 代码如下:<head&...
    99+
    2022-10-19
  • python赋值和交换怎么实现
    本文小编为大家详细介绍“python赋值和交换怎么实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“python赋值和交换怎么实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。赋值原理在赋值的右边形成一个新的元...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作