穿梭器:双向列表带计数选择(支持单选、多选和全选)

    前段时间分享过一个支持单选的穿梭器(列表框左右双向选择)案例,很多朋友觉得很赞,同时也想进一步学习并掌握支持单选、多选、全选的穿梭器交互制作。PMGOD将通过这篇案列分享,教大家使用Axure制作实现“穿梭器:双向列表带计数选择(支持单选、多选和全选)”

演示地址:穿梭器:双向列表带计数选择(支持单选、多选和全选)

实现效果

1、双向列表均支持单选、多选或全选;

2、移入选项、点击选项时分别有文字颜色或背景色的变化,突出选项;

3、如果左侧选项没有选中,点击向右选择时,出现错误提示信息;

4、如果右侧选项没有选中,点击向左选择时,出现错误提示信息;

5、点击全部选择时,左侧数据全部移入右侧;点击全部取消时,右侧数据全部移入左侧;

6、每次选择变动后,可选项和已选项的数据都会相应变化;

7、当可选项或已选项为0时,可选项和已选项的数据也能正确显示;

原理分析

1、提供左右两个列表框,两边的数据内容一致,数据是否显示的状态互斥;

2、左边为待选项的容器,初始状态全部为1,表示全部可见;

3、右侧为已选项的容器,初始状态全部为0,表示全部不可见;

4、当选中左边的选项,确认执行选择时,将左边选中项状态设置为0,同时将右边对应的选项设置为1;

5、执行完成后,左边选中的数据隐藏,右边显示左侧隐藏的数据;

6、取消选择的方法原理相同;

7、点击全部选择时,将左侧所有数据状态全部设置为0,同时将右边全部数据状态设置为1(不需考虑之前的数据显示状态);

8、执行非全选时,如果没有选择数据项,则给出错误提示即可;

注:单选穿梭器案例是采用变量赋值方法制作,由于中继器不支持同时插入多条数据,故多选案例不能用变量方法实现

元件准备

1、待选城市文本标签,用于显示待选城市的计数

2、待选项背景框(left_bg),放在待选项底部

3、待选项动态面板(left),用来存放可供选择的列表项

3.1 left面板中包含一个动态面板,放置中继器left

3.2 中继器left中用来存储可供选择的列表项

4、选项矩形(left_sl),触发左侧待选项移入右侧已选项

5、选项矩形(right_sl),触发右侧已选项移入左侧待选项

6、选项矩形(全部选择),触发左侧待选项全部移入右侧已选项

7、选项矩形(全部取消),触发右侧已选项全部移入左侧待选项

8、已选城市文本标签,用于显示已选城市的计数

9、已选项背景框(right_bg),放在已选项底部

10、已选项动态面板(right),用来存放已经选择的列表项

10.1 right面板中包含一个动态面板,放置中继器right

10.2 中继器right用来存储已经选择的列表项

11、操作提示组合元件,用于没有选择选项时的错误

隐藏提示文件,重新布局元件后效果如下:

实现步骤

1、准备左侧待选项列表数据

    拖入一个中继器left,中继器存储city、state两列数据,city列添加21条数据,对应显示广东省21个地市,state列全部为1(此处1表示可见)

    将中继器的数据通过每项加载时赋值给矩形,矩形显示的数据就是待选项源数据

    将中继器转换为动态面板sleft,动态面板的大小为218px*200px。设置动态面板的滚动条属性为“自动显示垂直滚动条”

实用小技巧:将可滚动的动态面板sleft转换为动态面板left,动态面板的大小为200px*200px。设置动态面板的滚动条属性为“无”,从而可以实现滚动且隐藏滚动条的效果

    在动态面板left底部放一个带边框的矩形背景,大小为202px*202px,在矩形背景的上面部分放待选城市文本标签,用于显示待选城市的计数。最终左侧待选项列表元件数据显示如下:

2、准备右侧已选项列表数据

    拖入一个中继器right,中继器存储city、state两列数据,city列添加21条数据,对应显示广东省21个地市,state列全部为0(此处0表示不可见)

    右侧其余的实现原理与左侧一致,最终右侧已选项列表元件数据显示如下:

3、设置全局变量,临时存放选中项

    设置全局变量“select_listl”,用来临时存放左侧待选项选中的数据;全局变量“select_listr”,用来临时存放右侧已选项选中的数据;全局变量的默认初始值均为空值。

4、待选项点击交互事件

    待选项矩形框用来显示待选项数据列表,分别设置鼠标悬停、鼠标放下、选中时的交互效果。

    鼠标单击待选项矩形框时,切换选中状态。当待选项状态为选中时,将全局变量"select_listl"的值设置为“当前值+1”,同时标记该行;当待选项状态为取消选中时,将全局变量"select_listl"的值设置为“当前值-1”

5、设置待选城市文本标签事件

    中继器left的的数量值等于可选项的数据值,中继器载入时,需要添加筛选,只显示state为1 的数据。每项加载时,设置待选城市的文本显示为“待选城市(可选[[Item.Repeater.dataCount]]项)”

    中继器赋值方法如下,文本格式为“富文本”

[[Item.Repeater.dataCount]]表示中继器的数量值,利用富文本特性改变选项值的文本颜色

6、已选项点击交互事件

    已选项点击交互事件同待选项点击交互事件一致,此处不再重复

7、设置已选城市文本标签事件

    已选城市文本标签设置与待选城市文本标签设置一致,此处不再重复

8、左侧向右选择点击事件

    点击“>>”按钮时,需要判断该点击事件是否为有效点击事件。

左侧待选项有选中状态时,全局变量“select_listl”不为空,点击事件有效,需要将左侧选中数据的状态更新为0,同时将右侧相同数据状态更新为1。特别注意:此处需要将待选项及已选项的选中标志全部取消

    当左侧待选项没有选中状态时,点击事件无效,提示“请从待选城市选择数据项!”

9、右侧向左选择点击事件

    点击“<<”按钮时,需要判断该点击事件是否为有效点击事件。

右侧已选项有选中状态时,全局变量“select_listr”不为空,点击事件有效,需要将右侧选中数据的状态更新为0,同时将左侧相同数据状态更新为1。特别注意:此处需要将待选项及已选项的选中标志全部取消

    当右侧已选项没有选中状态时,点击事件无效,提示“请从已选城市选择数据项!”

10、全部选择点击事件

    点击“全部选择”按钮时,不管左侧是否选中,也不需要考虑左侧还有多少待选项。直接将左侧所有数据状态改为0,将右侧所有数据状态改为1,同时取消所有数据选择状态。

11、全部取消点击事件

    点击“全部取消”按钮时,不管右侧是否选中,也不需要考虑右侧还有多少已选项。直接将右侧所有数据状态改为0,将左侧所有数据状态改为1,同时取消所有数据选择状态。

实用小技巧:利用显示事件的“灯箱效果”,背景色为黑色,透明度设置为20%。提示效果很漂亮。

本案例已完成,点击QQ群“532261671”获取源文件;

更多案例请点击http://www.pmgod.cn 查看。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342

推荐阅读更多精彩内容