element-ui Collapse 折叠面板拖动改变顺序

2023-05-16

在实际开发中需要用到Collapse 折叠面板但是同时需要能够实现拖动折叠面板改变顺序的功能,我的实现方法是引用Vue.Draggable

安装
npm install vuedraggable
在需要的文件引入
import draggable from 'vuedraggable'

调用组件

element="el-collapse"表示使用的是el-collapse

<draggable v-model="bodyList"  element="el-collapse">

  <div v-for="item in bodyList" :key="item.id">

     <el-collapse-item>

     </el-collapse-item>

 </div>
</draggable>

draggable 的各种事件

 

<!--start事件的用法-->
<template>
  <div>
    <!--使用draggable组件-->
    <div class="itxst">
      <div style="padding-left:10px">start事件例子</div>
      <div class="col">
        <draggable v-model="arr1" group="itxst" @start="start" animation="300">
          <transition-group>
            <div
              :class="item.id==1?'item forbid':'item'"
              v-for="item in arr1"
              :key="item.id"
            >{{item.name}}</div>
          </transition-group>
        </draggable>
      </div> 
    </div>
  </div>
</template>
<script>
//导入draggable组件
import draggable from "vuedraggable";
export default {
  //注册draggable组件
  components: {
    draggable
  },
  data() {
    return {
      //定义要被拖拽对象的数组
      arr1: [
        { id: 1, name: "www.itxst.com" },
        { id: 2, name: "www.jd.com" },
        { id: 3, name: "www.baidu.com" },
        { id: 5, name: "www.google.com" },
        { id: 4, name: "www.taobao.com" }
      ] 
    };
  },
  methods: {
    //开始拖拽事件
    start(e) {
      console.log(e);
    } 
  }
};
</script>
<style scoped>
.itxst {
  margin: 10px;
  text-align: left;
}
.col {
  width: 40%;
  flex: 1;
  padding: 10px;
  border: solid 1px #eee;
  border-radius: 5px;
  float: left;
}
.col + .col {
  margin-left: 10px;
}
.item {
  padding: 6px 12px;
  margin: 0px 10px 0px 10px;
  border: solid 1px #eee;
  background-color: #f1f1f1;
  text-align: left;
}
.item + .item {
  border-top: none;
  margin-top: 6px;
}

.item:hover {
  background-color: #fdfdfd;
  cursor: move;
}
.item2 {
  padding: 6px 12px;
  margin: 0px 10px 0px 10px;
  border: solid 1px #eee;
  background-color: pink;
  text-align: left;
}
.item2 + .item2 {
  border-top: none;
  margin-top: 6px;
}

.item2:hover {
  outline: solid 1px #ddd;
  cursor: move;
}
</style>

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

element-ui Collapse 折叠面板拖动改变顺序 的相关文章

  • 如何计算 Ruby 数组中相同字符串元素的数量

    我有以下内容Array Jason Jason Teresa Judah Michelle Judah Judah Allison 我如何为每个生成一个计数相同的元素 Where Jason 2 Judah 3 Allison 1 Tere
  • 从数组中删除元素(Java)[重复]

    这个问题在这里已经有答案了 有没有快速 而且美观 的方法来从 Java 数组中删除元素 您可以使用 commons lang 的 ArrayUtils array ArrayUtils removeElement array element
  • 根据给定索引和元素数量的列表创建子列表。序言

    我正在尝试解决一个简单的序言问题 但我无法解决它 从列表中 需要创建一个给定索引 I 的子列表 然后从 I 中创建一个给定为 N 的下一个元素 如果索引大于列表长度 我将使子列表为空 如果 N 元素数量 大于列表中的其余元素 我将获得从 I
  • vue使用elementui select下拉库组件鼠标hover出现下拉框

    mounted 生命周期里去监听 鼠标进入和鼠标移出事件 this refs mySelect addEventListener mouseenter function this querySelector selectel el sele
  • style = auto 或 100% 时获取元素高度?

    正如问题所问 当元素具有 style width 100 height auto 时 如何获得该元素的确切 px 高度或宽度例如 我可能不会将它嵌套在 div 内并通过 so 获取高度 宽度 我猜 javascript 可以在这里提供帮助
  • 在 Python 中循环 Protocol Buffers 属性

    我想要帮助递归地循环协议缓冲区消息中包含的所有属性 子对象 假设我们不知道它们的名称 或者有多少个 作为示例 请从 google 网站上的教程中获取以下 proto 文件 message Person required string nam
  • 用于获取前一个同级的 CSS 选择器[重复]

    这个问题在这里已经有答案了 有没有办法使用纯 CSS 3 来选择具有特定类的元素的前一个同级元素 i e html div div div div div div div div css box1 some styling box2 som
  • jQuery 选择具有相同类的随机元素

    我有 selectElement 类的元素 当我单击具有该类的元素时 我 选择 它 并给它另一个类 selectedElements 如果它还没有 但是 我有一个按钮 应该随机选择一定数量 例如 10 的 selectElement 类元素
  • 获取显示器内部元素的大小:无父级

    我正在尝试获取将在 jquery ui 对话框中显示的元素的宽度 该对话框设置为在加载时显示 无 这不允许我获得宽度 我是否需要显示它 获取宽度并立即再次隐藏它以获取宽度 或者还有其他我不知道的选择吗 Thanks 您有两个选择 如果你的
  • 从 C# 中的 List 中选择 N 个随机元素

    我需要一个快速算法从通用列表中选择 5 个随机元素 例如 我想从 a 中获取 5 个随机元素List
  • 如何在Python中删除两个numpy数组的重复元素

    我有两个数组命名 u v 例如 u np array 1 0 2 0 2 0 3 0 4 0 v np array 10 0 21 0 18 0 30 0 40 0 a np array 100 0 210 0 220 0 300 0 40
  • Lua:“拖动”数组中的元素序列

    我正在尝试创建一个函数 将连续数量的元素 拖动 到数组中的新位置 并限制为数组的当前大小 其他项目应该围绕 拖动 的项目晃动 例如 如果我的数组有 7 个元素 并且我想拖动中间的三个 1 2 3 4 5 6 7 lt keys a b C
  • CSS,悬停一个元素,影响另一个元素

    当我将鼠标悬停在 li a 上时 我可以影响普通 CSS 中的另一个元素吗 因为我试图在悬停链接时将一个框作为背景元素滑入 与此网站导航完全相同 只是不是在激活时使用 而是通过悬停来使用 http www zindhai com http
  • 在Vue.js中,如何选择组件的节点元素? $refs 可能吗?

    因为我想选择组件的节点元素 所以我想也许我可以使用 refs Parent
  • 按位置获取元素?

    我正在研究 SVG 脚本 有 getElementById 或 getElementsByTagName 但我找不到任何方法来按位置获取元素 比如获取位置为x 10 y 10的元素 有什么办法可以实现这个目标吗 var yourElemen
  • 随机推荐