vuedraggable 选项介绍

vuedraggable 是基于 SortableJS 的 Vue 组件,提供了丰富的选项来定制拖拽行为。以下是 vuedraggable 常用的选项和它们的详细说明:

常用选项介绍

  1. group
    配置拖拽分组。多个列表可以共享同一个分组,允许它们之间的项目互相拖拽。

    group: { name: 'shared', // 分组的名称 pull: 'clone', // 是否允许拖拽项从该列表中被拖出 put: true // 是否允许从其他列表中拖拽项放入此列表 }
    • name: 用于标识该拖拽组,其他列表可以通过相同的名称与之共享。
    • pull: 指定当前列表是否允许拖拽项从列表中移除。可选值有:
      • 'clone': 允许拖拽项被克隆并拖出列表。
      • true: 允许拖拽项被移除。
      • false: 禁止移除。
    • put: 指定是否允许将其他列表中的项拖入当前列表。默认为 true,表示允许拖入。
  2. disabled
    禁用拖拽功能。

    disabled: true // 禁用拖拽
  3. animation
    设置拖拽项在排序时的动画效果,单位为毫秒。

    animation: 150 // 150ms的动画时间
  4. handle
    配置拖拽的句柄。只有指定的元素可以被拖动,其它部分将无法进行拖拽。

    handle: '.drag-handle' // 拖拽句柄的CSS类名
  5. delay
    设置拖拽延迟,单位为毫秒。在拖拽开始之前,拖动元素需要等待指定的时间(例如,避免误触发)。

    delay: 200 // 200ms延迟后才能开始拖拽
  6. forceFallback
    强制使用浏览器原生的拖拽 API。通常用于某些浏览器不支持 HTML5 拖拽 API 或者自定义拖拽的场景。

    forceFallback: true // 强制启用备用拖拽
  7. fallbackClass
    指定一个 CSS 类,用于设置拖拽项在拖拽时的样式。这个类会在元素开始拖拽时被添加到元素上,结束拖拽时移除。

    fallbackClass: 'dragging' // 拖拽时添加的 CSS 类
  8. fallbackOnBody
    设置为 true 时,拖拽元素会被附加到 body 元素上,而不是拖拽元素的父级容器。这样可以避免拖拽元素被父容器的样式限制。

    fallbackOnBody: true // 将拖拽项附加到body
  9. swap
    启用交换排序模式,在拖拽时替换被拖拽项和目标位置的项。适用于需要交换元素顺序的场景。

    swap: true // 启用交换排序
  10. removeOnSpill
    如果拖拽项被拖拽到一个不支持该项放置的区域,它将被移除。用于防止拖拽项被放置到无效区域。

    removeOnSpill: true // 拖拽项放置到无效区域时移除
  11. direction
    设置拖拽的方向,horizontalvertical。默认情况下,vuedraggable 会根据容器的排列方向自动决定拖拽方向。

    direction: 'horizontal' // 设置为水平拖拽
  12. dragClass
    设置一个 CSS 类,当拖拽项正在拖拽时,这个类会被添加到拖拽项上。通常用于给拖拽项添加样式变化。

    dragClass: 'dragging' // 拖拽项添加的 CSS 类
  13. setData
    用于指定拖拽过程中可以设置的自定义数据,默认情况下是 text/plain

    setData: (evt, data) => { // 可以自定义拖拽时传递的数据 data.someProperty = 'value'; }
  14. ghostClass
    设置一个 CSS 类,这个类会在拖拽项被拖动时应用到该元素的占位符上(通常是拖拽元素透明版)。

    ghostClass: 'ghost' // 拖拽时设置的透明占位符类
  15. chosenClass
    设置一个 CSS 类,这个类会在拖拽项被选中时应用。通常用于添加选择项的样式。

    chosenClass: 'chosen' // 选中项的 CSS 类
  16. onStart
    当拖拽开始时触发的回调函数。传入一个事件对象,包含拖拽的详细信息。

    onStart: (evt) => { console.log('Drag started', evt); }
  17. onEnd
    当拖拽结束时触发的回调函数,传入一个事件对象。可以在此时获取最终的拖拽结果。

    onEnd: (evt) => { console.log('Drag ended', evt); }
  18. onUpdate
    当拖拽过程中,元素排序更新时触发。适用于动态更新数据。

    onUpdate: (evt) => { console.log('List updated', evt); }
  19. onAdd
    当一个项被添加到列表时触发。通常用于动态添加项的场景。

    onAdd: (evt) => { console.log('Item added', evt); }
  20. onRemove
    当一个项被从列表中移除时触发。适用于删除或移除项的场景。

    onRemove: (evt) => { console.log('Item removed', evt); }

示例:完整配置

<template> 
<draggable v-model="items" :options="dragOptions" @start="onDragStart" @end="onDragEnd" > 
<div v-for="(item, index) in items" :key="index">{{ item }}</div> 
</draggable> 
</template><script>import draggable from "vuedraggable";export default { 
components: { draggable, }, 
data() { 
return { items: ["Item 1", "Item 2", "Item 3", "Item 4"], dragOptions: { group: { name: "shared", pull: "clone", put: true }, animation: 200, handle: ".drag-handle", disabled: false, }, }; }, 
methods: { 
onDragStart(evt) { console.log("Drag started", evt); }, 
onDragEnd(evt) { console.log("Drag ended", evt); }, }, }; 
</script><style scoped> 
.drag-handle { cursor: move; padding: 5px; background-color: #ccc; border-radius: 5px; } </style>

总结

通过 vuedraggable 提供的各种选项,你可以非常灵活地控制拖拽行为,包括禁用拖拽、定制拖拽手柄、设置动画效果、支持多列拖拽等。选项的丰富性使得它能够满足大多数应用场景的需求。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在CodeBlocks搭建SDL2工程构建TFT彩屏模拟器虚拟TFT彩屏幕显示

在CodeBlocks搭建SDL2工程构建TFT彩屏模拟器虚拟TFT彩屏幕显示 参考文章源码下载地址一、SDL2的创建、初始化、退出二、系统基本Tick、彩屏刷新、按键事件三、彩屏获取与设置颜色四、彩屏填充颜色及清屏五、彩屏显示中文和英文字符串六、彩屏显示数字七、彩屏初始化八、主函数测…

ESP8266+STM32+阿里云保姆级教程(AT指令+MQTT)

前言&#xff1a;在开发过程中&#xff0c;几乎踩便了所有大坑小坑总结出的文章&#xff0c;我是把坑踩满了&#xff0c;帮助更过小白快速上手&#xff0c;如有错误之处&#xff0c;还麻烦各位大佬帮忙指正、 目录 一、ESP-01s介绍 1、ESP-01s管脚功能&#xff1a; 模组启动模…

美的空气净化器好用吗?拾梧、美的、戴森空气净化器除烟哪个好?

说到二手烟&#xff0c;这可真是个让人头疼的问题&#xff01;它里面含有超过7000种化学物质&#xff0c;形式多样&#xff0c;处理起来比甲醛这些传统污染物难多了。在市场上那么多空气净化器里&#xff0c;要挑一个能真正对付二手烟的&#xff0c;简直就像大海捞针一样难。不…

【机器学习】穷理至极,观微知著:微积分的哲思之旅与算法之道

文章目录 微积分基础&#xff1a;理解变化与累积的数学前言一、多重积分的高级应用1.1 高维概率分布的期望值计算1.1.1 多维期望值的定义1.1.2 Python代码实现1.1.3 运行结果1.1.4 结果解读 1.2 特征空间的体积计算1.2.1 单位球体的体积计算1.2.2 Python代码实现1.2.3 运行结果…

Ae:合成设置 - 3D 渲染器

Ae菜单&#xff1a;合成/合成设置 Composition/Composition Settings 快捷键&#xff1a;Ctrl K After Effects “合成设置”对话框中的3D 渲染器 3D Renderer选项卡用于选择和配置合成的 3D 渲染器类型&#xff0c;所选渲染器决定了合成中的 3D 图层可以使用的功能&#xff0…

Zookeeper是如何解决脑裂问题的?

大家好&#xff0c;我是锋哥。今天分享关于【Zookeeper是如何解决脑裂问题的?】面试题。希望对大家有帮助&#xff1b; Zookeeper是如何解决脑裂问题的? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Zookeeper 通过一系列的机制来防止和解决脑裂&#xff08;sp…

【python因果库实战15】因果生存分析4

这里写目录标题 加权标准化生存分析总结个体层面的生存曲线 加权标准化生存分析 我们还可以将加权与标准化结合起来&#xff0c;使用 WeightedStandardizedSurvival 模块。在这里&#xff0c;我们将逆倾向得分加权模型&#xff08;根据基线协变量重新加权人群&#xff09;与加…

windows中硬件加速gpu计划开启cpu的使用率居高不下

1.加速gpu计划开启在任务管理器的gpu选项中看不到cuda选项&#xff0c;这给我们进行深度学习训练和推理带来很大影响。 2.开启硬件加速CPU的占用率明显增高&#xff0c;特别用GPU进行实时视频流解码时就不会分配给GPU解码&#xff0c;造成cpu占用居高不下。不利于深度学习训练…

OpenGL入门最后一章观察矩阵(照相机)

前面的一篇文章笔者向大家介绍了模型变化矩阵&#xff0c;投影矩阵。现在只剩下最后一个观察矩阵没有和大家讲了。此片文章就为大家介绍OpenGL入门篇的最后一个内容。 观察矩阵 前面的篇章当中&#xff0c;我们看到了即使没有观察矩阵&#xff0c;我们也能对绘制出来的模型有一…

java.lang.Error: FFmpegKit failed to start on brand:

如果你使用FFmpegKit的时候遇到了这个问题&#xff1a; java.lang.Error: FFmpegKit failed to start on brand: Xiaomi, model: MI 8, device: dipper, api level: 29, abis: arm64-v8a armeabi-v7a armeabi, 32bit abis: armeabi-v7a armeabi, 64bit abis: arm64-v8a.at c…

KAGGLE竞赛实战2-捷信金融违约预测竞赛-part1-数据探索及baseline建立

竞赛链接&#xff1a;https://www.kaggle.com/competitions/home-credit-default-risk/ 认识数据集&#xff1a;application的两张表是申请人信息 通过id关联bureau&#xff1a;过去的借款、previous_application两张表 而bureau_balance则代表对应的还款信息 表之间的关系…

【软考网工笔记】计算机基础理论与安全——网络安全

病毒 Melissa 宏病毒 1. 是一种快速传播的能够感染那些使用MS Word 97 和MS Office 2000 的计算机宏病毒。 2. 前面有**Macro** 表示这是宏病毒&#xff1b; 3. 宏病毒可以感染后缀为.xls的文件&#xff1b;Worm 蠕虫病毒 1. 通常是通过网络或者系统漏洞进行传播。 2. 利用信…

Java虚拟机(Java Virtual Machine,JVM)

一、Java 虚拟机 Java 虚拟机&#xff08;Java Virtual Machine, JVM&#xff09;是运行 Java 字节码的虚拟机。它是Java平台的核心组件之一&#xff0c;使得Java程序具有 一次编写&#xff0c;到处运行&#xff08;Write Once, Run Anywhere&#xff09; 的特性。 JVM 有针对…

ChatGPT 主流模型GPT-4/GPT-4o mini的参数规模是多大?

微软论文又把 OpenAI 的机密泄露了&#xff1f;&#xff1f;在论文中明晃晃写着&#xff1a; o1-preview 约 300B&#xff1b;o1-mini 约 100BGPT-4o 约 200B&#xff1b;GPT-4o-mini 约 8BClaude 3.5 Sonnet 2024-10-22 版本约 175B微软自己的 Phi-3-7B&#xff0c;这个不用约…

GESP202406 二级【计数】题解(AC)

》》》点我查看「视频」详解》》》 [GESP202406 二级] 计数 题目描述 小杨认为自己的幸运数是正整数 k k k&#xff08;注&#xff1a;保证 1 ≤ k ≤ 9 1 \le k\le 9 1≤k≤9&#xff09;。小杨想知道&#xff0c;对于从 1 1 1 到 n n n 的所有正整数中&#xff0c; k…

SpringMVC(六)拦截器

目录 1.什么是拦截器 2.拦截器和过滤器有哪些区别 3.拦截器方法 4.单个拦截器的执行流程 5.使用拦截器实现用户登录权限验证&#xff08;实例&#xff09; 1.先在html目录下写一个login.html文件 2.在controller包下写一个LoginController文件 3.加拦截器 1.创建一个conf…

基于Arduino的FPV头部追踪相机系统

构建FPV头部追踪相机&#xff1a;让你置身于遥控车辆之中&#xff01; 在遥控车辆和模型飞行器的世界中&#xff0c;第一人称视角&#xff08;FPV&#xff09;体验一直是爱好者们追求的目标。通过FPV头部追踪相机&#xff0c;你可以像坐在车辆或飞行器内部一样&#xff0c;自由…

jQuery get 方法内操控vue变量(异步ajax请求方法中操控双向绑定的响应式变量)实现异步请求函数内完成变量的双向响应式绑定

// 首先&#xff0c;创建一个Vue实例 new Vue({ el: #app, data: { message: Hello, Vue! }, mounted: function() { var self this; // 使用jQuery发起get请求 $.get(your/api/url, function(data) { // 当请求成功完成后&#xff0c;更新Vue实…

Spring boot接入xxl-job

Spring boot接入xxl-job 导入maven包加入配置增加配置类创建执行器类&#xff08;写job的业务逻辑&#xff09;去控制台中配置job 导入maven包 <dependency><groupId>com.xuxueli</groupId><artifactId>xxl-job-core</artifactId><version>…

【超详细】React SSR 服务端渲染实战

前言 这篇文章和大家一起来聊一聊 React SSR&#xff0c;本文更偏向于实战。你可以从中学到&#xff1a; 从 0 到 1 搭建 React SSR 服务端渲染需要注意什么 react 18 的流式渲染如何使用 文章如有误&#xff0c;欢迎指出&#xff0c;大家一起学习交流&#xff5e;。 &…