vuedraggable示例_vuedraggable快速入门

value和list

这两个都可以给一个draggable注入数据源:

/*value注入数据源*/

export default {

data() {

return {

list:[{

name:'aaa',id:1,

},{

name:'bbb',id:2,

}]

};

}

}

/*list注入数据源头*/

export default {

data() {

return {

list:[{

name:'aaa',id:1,

},{

name:'bbb',id:2,

}]

};

}

}

它们的区别是:value注入的,如果发生了拖拽,value的数据并不会跟着变化,list注入的,则会发生变化。

也就是说value注入的,后续有无变化都和数据体没关系,它用于只需要展示拖拽效果的地方;list注入的,数据体和当前页面上的属性是保持一致的,页面上的顺序变了,内部数组对应的结构体数组的顺序也会重新排列,和显示保持一致。

注意,它们不能同时出现,只能二选一。

ghost-class和handle

ghost指的在拖拽体原本位置占坑的那个元素:

ghost-class就是给占坑元素设置样式:

.ghost {

opacity: 0.5;

background: #c8ebfb;

}

handle是拖拽的把手,表示拖拽元素指定可拖拽的部分:

正常情况下拖拽元素的整体都是可拖拽的,加了handle之后,只能指定的地方可以拖拽了,其他地方不能进行拖拽:

{{ element.name }}

tag和componentData

对于一些特定的原生组合标签,例如ul,li或者table,tr还有tr,td之类的,可以指定一个tag,让draggable替换成指定的标签:

{{ item.id }}{{ item.name }}{{ item.sport }}

例如上面的draggable就会被替换成table。

componentData和tag类似,但是是对于那种组合组件的,例如在ElementUI中的折叠面边,el-collapse和el-collapse-item就是这种组合关系:

与现实生活一致:与现实生活的流程、逻辑保持一致,遵循用户习惯的语言和概念;
在界面中一致:所有的元素和结构需保持一致,比如:设计样式、图标和文本、元素的位置等。
控制反馈:通过界面样式和交互动效让用户可以清晰的感知自己的操作;
页面反馈:操作后,通过页面元素的变化清晰地展现当前状态。

对于上面那种情况,如果要转成vuedraggable的话,首先要设置tag,但是那些el-collapse上的数据怎么办呢?就要通过component-data配置了:

{{ lign }}

export default {

name: "third-party",

display: "Third party",

order: 10,

components: {

draggable

},

data() {

return {

list: [

{

title: "Consistency",

id: 1,

text: [

"Consistent with real life: in line with the process and logic of real life, and comply with languages and habits that the users are used to;",

"Consistent within interface: all elements should be consistent, such as: design style, icons and texts, position of elements, etc."

]

},

{

title: "Feedback",

id: 2,

text: [

"Operation feedback: enable the users to clearly perceive their operations by style updates and interactive effects;",

"Visual feedback: reflect current state by updating or rearranging elements of the page."

]

}

],

activeNames: [1],

collapseComponentData: {

on: {

change: this.inputChanged

},

props: {

value: this.activeNames

}

}

};

},

methods: {

inputChanged(val) {

this.activeNames = val;

}

}

};

上面代码中的collapseComponentData就是将原来el-collapse上传递数据的部分抽离出来了,包括事件(on),属性(prop,attr)的设置。

group和clone

group一般的用法是用来区分拖拽组的,group名称相同的拖拽组可以互相拖放:

{{ element.name }} {{ index }}

{{ element.name }} {{ index }}

互相拖放的一般效果如下:

group属性还有更详细的配置,例如:group="{name:'abc',pull:'clone',put:false}"。

put参数比较简单,是用来控制别的地方内容是否可以拖拽到自己这边来。如果设置为false,那么就表示别的地方的内容无法拖拽到自己这边来。

pull参数控制的是从当前拽走,放在另外一个地方的行为。默认情况下(设置为true)是你拽到另外一个地方去,当前列表中就会少一个,对方列表多一个。如果设置为'clone',那么当前列表不会减少,同时对方列表多了一个。

当然你甚至可以配置一个:clone='func',用来控制放入对方列表的内容,我们看一个复杂一点的例子:

{{ element.name }} {{ index }}

{{ element.name }} {{ index }}

export default {

methods: {

clone: function(el) {

return {

name: el.name + " cloned"

};

},

pullFunction() {

return Math.random()*10%2 ? "clone" : true;

},

}

};

上面的代码中,pull设置为true还是'clone'是随机的(pullFunction)。如果设置的true,那么就是当前少一个,对方多一个;如果是'clone',同时:clone='func',那么就会用调用你自定义的clone方法,当前不少,对方多一个。

transition-group和animation

vuedraggable中的动画主要分成两类,一类是交换过程的动画:

上图我们可以看到,拖拽元素每经过一个内容项,它就会发生动画移动的效果,这个主要是通过animation的设置:

{{ element.name }} {{ index }}

还有一种就是只有交换的双方才有动画:

这种和上面的不一样,这种交换过程中没有动画,但是只是最后真正交换的时候才有动画,这种需要加个class就好了:

{{ element.name }} {{ index }}

.flip-list-move {

transition: transform 0.5s;

}

给transition-group添加一个name属性ABC,然后增加一个ABC-move的样式类就好了

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

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

相关文章

LeetCode MySQL 1468. 计算税后工资

文章目录1. 题目2. 解题1. 题目 Salaries 表: ------------------------ | Column Name | Type | ------------------------ | company_id | int | | employee_id | int | | employee_name | varchar | | salary | int | ----------…

ETL详解

ETL是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。 ETL是BI项目重要的一个环节。 通常情况下,在BI项目中ETL会花掉整个项目至少1/3的时…

博客园

为更好的分享本人的博客,本人在博客园地址:http://www.cnblogs.com/blogyuan/,里面也有博文,本博客将不定期将两个博客上的博文同步,欢迎转载! 转载于:https://www.cnblogs.com/blogyuan/archive/2012/11/0…

LeetCode MySQL 1421. 净现值查询

文章目录1. 题目2. 解题1. 题目 表: NPV ------------------------ | Column Name | Type | ------------------------ | id | int | | year | int | | npv | int | ------------------------ (id, year) 是该表主键. 该表有…

apache大师+伪静态_Apache开启伪静态示例

Apache开启伪静态示例环境:系统 WindowsApache 2.2加载Rewrite模块:在conf目录下httpd.conf中找到LoadModule rewrite_module modules/mod_rewrite.so这句,去掉前边的注释符号“#”,或添加这句。允许在任何目录中使用“.htaccess”…

从入门到深入Fiddler 2 (二)

AutoResponder 快速引用 今天我们来看一下Fiddler的AutoResponder选项卡的强大功能。 Fiddler的AutoResponder 选项卡允许你使用本地硬盘的文件来作为返回内容,而不是把请求发往服务器。 创建AutoResponder 规则。 使用AutoResponder选项卡,你可以创建一…

探索性数据分析EDA及数据分析图表的选择

文章目录一、探索性数据分析EDA二、数据分析图表的选择一、探索性数据分析EDA 探索性数据分析(Exploratory Data Analysis,简称EDA),指对数据分析的过程中尽量不加入先验假设,而是通过作图表和统计等方式来探索数据结构和规律。 在EDA中你可…

LeetCode MySQL 608. 树节点

文章目录1. 题目2. 解题1. 题目 给定一个表 tree,id 是树节点的编号, p_id 是它父节点的 id 。 ---------- | id | p_id | ---------- | 1 | null | | 2 | 1 | | 3 | 1 | | 4 | 2 | | 5 | 2 | ---------- 树中每个节点属于以下三种类…

xshell 打开文件跳转到最后_如何在Xshell中打开Xftp

Xftp作为远程文件传输软件,与Xshell终端模拟器同属于Xmanager,这两款软件经常配合使用,用来给远程服务器上传文件非常方便。那么在使用Xshell的时候怎样打开Xftp呢?下面就来给大家介绍具体操作技巧。如果安装了一、XShell中打开如…

网络资源-深入剖析Binding2(学习)

WPF Binding WPF里分三种Binding:Binding, PriorityBinding, MultiBinding,这三种Binding的基类都是BindingBase,而BindingBase又继承于MarkupExtension Binding: 提供对绑定定义的高级别访问,绑定将绑定目标对象&…

LeetCode MySQL 1045. 买下所有产品的客户

文章目录1. 题目2. 解题1. 题目 Customer 表: ---------------------- | Column Name | Type | ---------------------- | customer_id | int | | product_key | int | ---------------------- product_key 是 Product 表的外键。Product 表&#xff1…

统计学中常用的数据分析方法汇总

文章目录一、描述统计二、假设检验三、信服分析四、列联表分析五、相关分析六、方差分析一、描述统计 描述统计是通过图表或数学方法,对数据资料进行整理、分析,并对数据的分布状态、数字特征和随机变量之间关系进行估计和描述的方法。描述统计分为集中…

java组装树状结构数据集合_JAVA构建List集合为树形结构

package com.zving.tree;import java.util.ArrayList;import java.util.List;/*** 树形结构实体类* author clove*/public class Node {private int id;private int pid;private String name;private String type;private List children new ArrayList<>();public Node(…

过拟合(overfitting)和欠拟合(underfitting)出现原因及如何避免方案

文章目录欠拟合一、什么是欠拟合&#xff1f;二、欠拟合出现原因三、解决欠拟合(高偏差)的方法过拟合一、什么是过拟合&#xff1f;二、过拟合出现原因三、解决过拟合(高方差)的方法欠拟合 一、什么是欠拟合&#xff1f; 欠拟合是指模型不能在训练集上获得足够低的误差。换句…

斯坦佛编程教程-Unix编程工具(五)

Unix Shell 这个部分是总结一下在Unix shell中使用的大多数的命令。 文件命令 cd directory 改变路径&#xff0c;如果directory没有指明&#xff0c;那么就返回home目录。 pwd 显示当前路径。 ls 显示目录下的内容&#xff0c;ls -a会显示以点开头的文件&#xff0c;ls…

LeetCode MySQL 612. 平面上的最近距离

文章目录1. 题目2. 解题1. 题目 表 point_2d 保存了所有点&#xff08;多于 2 个点&#xff09;的坐标 (x,y) &#xff0c;这些点在平面上两两不重合。 写一个查询语句找到两点之间的最近距离&#xff0c;保留 2 位小数。 | x | y | |----|----| | -1 | -1 | | 0 | 0 | …

数据库开发设计规范及表结构设计原则

文章目录一. 命名规范二. 库表基础规范三. 字段规范四. 索引规范五. SQL设计①.正规化表设计原则②.SQL设计③.“三少原则”六. 行为规范一. 命名规范 1.库名、表名、字段名必须使用小写字母&#xff0c;并采用下划线分割 (1)MySQL有配置参数lower_case_table_names1&#xff…

python离散点的线性回归_用python玩点有趣的数据分析——一元线性回归分析实例...

http://python.jobbole.com/81215/本文参考了博乐在线的这篇文章&#xff0c;在其基础上加了一些自己的理解。其原文是一篇英文的博客&#xff0c;讲的十分通俗易懂。本文通过一个简单的例子&#xff1a;预测房价&#xff0c;来探讨怎么用python做一元线性回归分析。1. 预测一下…

[BTS] WCF-SAP Connect to SAP gateway failed

日志名称: Application来源: BizTalk Server日期: 2012/11/15 15:58:24事件 ID: 5743任务类别: (1)级别: 警告关键字: 经典用户: 暂缺计算机: AppTestSrv.AppCenter.xz描述:The ad…

LeetCode MySQL 1112. 每位学生的最高成绩

文章目录1. 题目2. 解题1. 题目 表&#xff1a;Enrollments ------------------------ | Column Name | Type | ------------------------ | student_id | int | | course_id | int | | grade | int | ------------------------ (student_id…