Axure教程:列表拖动排序

本文将为大家介绍如何用Axure实现列表拖动排序的上下拖动,希望该教程对你有所帮助。

最近使用Axure过程中碰到要对列表做排序,自然想到的是用中继器来实现。看了这篇文章《Axure教程:列表拖动排序的实现方式》 受到了不少的启发,但是只能向上拖动毕竟不太好,经过研究发现还是有办法实现上下拖动的。

我使用的是Axure RP 9,如果是Axure RP 8原理上基本相同。

一、原型原理

要进行拖动排序,主要是计算拖动到达的位置处于整个列表的相对位置,再进行插入。

二、思考过程

要进行拖动,就要使用动态面板。

动态面板放在中继器里可以很容易的获取到中继器里的数据

但是如果直接拖动动态面板,就会像上面提到的文章一样,只能往上拖动,往下拖动会把排在下方的条目往下推,达不到排序的目的。

这里只需要将被拖动的元件放在中继器外,拖动拖成中将中继器里的数据放在被拖动的元件上即可!

三、动手实现

01 中继器

我们先拖入一个中继器,在正常的数据以外增加一列标题为OrderNumber

Name列填入A ~ E

OrderNumber列填入0 ~ 4

中继器内矩形长宽改为200*40方便点击拖动

再对中继器添加一个载入时按照OrderNumber升序排序

02

将中继器里的元件复制一份放在中继器外,取名“拖动块”,并设置载入时隐藏。

03

中继器外面放一个按钮,主要用来触发排序和整理OrderNumber,也设置为载入时隐藏。

04

在中继器里放入一个动态面板,用来触发拖动。

05

下面我们就来设置动态面板上的互动:

1)拖动开始时

  • 设置拖动块的文本为[[Item.Name]]
  • 移动拖动块“到达”所鼠标所指向的条目的位置,通过OrderNumber来计算即可

(X坐标为 中继器的x坐标;Y坐标为 中继器的y坐标 该条目的序号 * 每个条目的高度)

显示拖动块

2)拖动时,移动拖动块跟随拖动

我这里并没有添加边界,如果需要也可以添加上。添加边界要注意一个地方,y轴上要留出空间,允许拖动到第一个条目的上方。

3)拖动结束时

计算中继器和拖动块y坐标的距离来确定OrderNumber,值为 [[(LVAR2.y-LVAR1.y)/40]]

触发中继器外的按钮

按钮单击时 将中继器的OrderNumber列更新为[[TargetItem.index-1]]。

OrderNumber用来排序的同时,也用来计算拖动块出现的位置,所以拖动一次后就要更新为0 ~ N-1的整数,TargetItem.index是从1开始,所以要减1。

被更新的行的顺序就是当前排序的顺序,所以这样更新不会改变当前的排序。

规则写的是true,在实际使用中可以用其他条件,比如该行的可见性等条件来更新, 经测试,中继器筛选不显示的行,不会被更新OrderNumber。

移动拖动块到达排序后的位置

将移动的过程添加一个200ms的动画

等待200ms后把拖动块隐藏起来,整个拖动排序就完成了

效果完成了,我们还可以在中继器里的条目上,加入一块相同尺寸的75%不透明度的矩形,拖动开始时显示,拖动结束时隐藏,再加上文字提示可以拖动排序,页面的效果就能更拟真。

写在最后

有人说也就几条注释或跟技术人员几句话就能交待过去,何必花功夫去模拟这个效果 。但如果时间允许,我们我们还是应该尽量将页面效果用最直观的方式表现出来,方便跟客户展示,也方便设计师、程序员查看。

本文由@Goffe 原创发布于人人都是产品经理,未经许可,禁止转载

题图来自Unsplash,基于CC0协议

(0)

相关推荐

  • Axure教程-动态面板详解

    动态面板的学习可以帮助我们完成十分复杂的动作设计,今天我们详细学习一下动态面板的使用. 图:Axure中代表动态面板的icon 从这个icon可以看出: 1.这个动态面板有多个层 2.每个层有自己的顺 ...

  • Excel添加“编辑自定义列表”--自定义排序依据

    在实际工作中,Excel默认的排序方式(默认按照排序字段英文字母升降序)往往差强人意,无法满足工作需要.比如,公司通讯录,需要按照部门(董事会.总裁办.行政部.财务部-).职务级别高低等进行排序.这篇 ...

  • Excel 2016如何对数据列表进行排序

    在使用Excel 2016编辑工作时会碰到形形色色的问题,比如需要对数据列表进行排序.那么如何进行操作呢?下面小编与你分享具体步骤和方法. 操作方法 01 启动Excel 2016电子表格应用软件,如 ...

  • Python list列表怎样排序

    Python list列表也是Python编程语言中的比较重点的知识.今天小编我就教教大家关于Python list列表的排序方法,主要是sort和reverse. 操作方法 01 如图所示,这是小编 ...

  • python怎样对列表进行排序

    python提供了sort和reverse方法来对数据进行排序,今天咪咪我就教教大家python怎样对列表进行排序. 操作方法 01 首先,打开cmd命令,然后输入python,按回车键进入pytho ...

  • 最详细的教程axure新手入门:[1]Axure教程

    首先做个声明:此次教程里为了快速完成,借用了一些网上已有教程的图文,不是剽窃,只图方便.另外,因为汉化版本可能功能名称等略有差别,请自行理解. 名词解释: 线框图:一般就是指产品原型,比如:把线框图尽 ...

  • 为原型设计添加点动画效果【Axure教程】

    应用交互效果中,动画效果是应用的锦上添花效果,比起死板的页面切换,动画过渡效果还是会让人感觉自然,不那么生硬,也是一款优秀应用的加分项.我们以几个例子来说明一下如何应用axure里的动画效果. 幻灯片 ...

  • QQ影音如何设置对列表项排序

    点列表上部的按钮,或者在右键菜单中选择,在弹出的子菜单中可以对列表项进行排序,支持“按媒体名称”和“按媒体类型”排序。

  • Axure教程:如何展示表格数据?

    通常在系统管理后台中,使用列表(表格)形式展示数据是最为常见的方式.而在使用Axure设计产品原型时想实现这个数据列表却不太容易,或许常见的做法就是使用矩形拼凑起来,还有就是直接使用表格控件来布局.但 ...

  • axure教程之八日历控件的制作:[8]图像的热区

    制作的日历控件,基本上能实现日历控件在网页的基本功能,例如点击日历图标出现日期选择面板,点击其中一个预先设定好的日期,日期在文本框显示.点击日历图标中的清空,则删除文本框中的日期.点击关闭,则关闭日期 ...