【Axure教程】标签版分级多选下拉列表

分级多选下拉列表是指一个下拉列表,它包含多个层次的选项,用户可以选择一个或多个选项。这些选项通常是根据某种层级关系来组织的,例如从上到下有不同的分类或者过滤条件,用户选择上层选项后,下层选项会发生变化,通常显示与上层选项相关的数据。

今天我们就来学习,怎么在Axure中制作标签版分级多选下拉列表的原型模版,本文为高级教程,不建议刚入门的同学直接学习,建议可以先学习前面的基础章节,对中继器有一定了解后,再回头学习本教程。

【原型地址】

https://axhub.im/ax9/09b38389df30358f/#g=1&p=2级多选下拉列表__含标签

一、效果展示

查看子级选项——点击一级选项,可以在右侧查看对应的二级选项

图片

选中或取消选中——点击多选按钮,可以选中或取消选中当前选项

图片

全选效果——选中一级选项后,自动全选对应的2级选项

图片

取消全选——取消选中一级选项后,自动取消选择所有对应的2级选项

图片

自动反选——一级选项会根据对应二级选项选中的数量自动反选

1、如果子级选项全部选中,就会变成全选状态

图片

2、如果子级选项全部未选中,就会变成未选状态

图片

3、如果自己选项部分选中,就会变成半选状态

图片

生成标签——选中选项后,会自动生成对应的标签,下拉框会根据标签数量自动调整尺寸

图片

二、制作教程

1. 材料准备

我们主要分成四部分内容制作,包括下拉框、一级选项列表,二级选项列表,选中后回显的标签。

1.1下拉框

下拉框主要由矩形和箭头组成,如下图所示摆放

图片

1.2 一级下拉列表

一级选项列表主要由矩形(背景)和中继器制作,中继器内部包括多选按钮,文本标签、背景矩形和右箭头,其中多选按钮我们需要自制,将多选、半选和全选图标放在同一个动态面板的3个状态页里,后续通过交互切换。

中继器表格里我们需要有三列,text列对应文本,jinyong列用于控制子级显示和变色,xuanzhong列用于控制选中状态。

图片

如果是Axure10或以上的版本,我们点击链接按钮,选择文本标签,就可以将表格文本设置到文本标签的元件里;如果是Axure9或以下的版本,我们就要在中继器每项加载时,用设置文本的交互,将表格里的值设置到文本标签元件里。

填写完成后,如果选项内容较多,我们可以将中继器转为动态面板,然后调出垂直滚动条,如果需要隐藏滚动条或美化滚动条,可以通过双动态面板来实现,完成后如下图所示。

图片

1.3 二级下拉列表

二级选项列表和一级的基本一致,我们把一级的复制过来,将箭头删除,然后将原来的text列改成text2,增加一个text1列,text1列指的是该2级选项对应的一级选项,例如二级选项是广州市,那他的一级选项就是广东省,上面里值text1就是广东省,text2就是广州市,这里显示的文本值为text2列的值,设置方式和上面一级选项列表一致。最后我们需要增加一列xianshi列,后续用于控制显示内容。

图片

1.4 选中后回显的标签

我们也是用中继器来制作,中继器里放置一个矩形,样式自由设计,可以参考下图所示

图片

中继器表格里增加一列,默认为空即可,后续通过交互会将选项列表的选中项设置到这里,我们只需要将这列的值设置到矩形里即可,方法同上面的一级下拉列表。

图片

案例中这个中继器网格分布,每行显示2个选项。

这个中继器放在下拉框的上方,整体布局如下图所示

图片

将一级列表和二级列表组组合,作为选项的弹出列表,将标签中继器和下拉框组组合。

2. 交互制作

2.1 显示选项列表

鼠标单击下拉框组合时,我们用显示的交互,显示选项列表,这里要选择遮罩效果,遮罩为透明,这样点击空白地方就可以收起列表。

图片

2.2 根据一级选项显示二级选项

鼠标单击一级选项时,我们想在让该行内容变色,显示2级选项列表,列表内容为该选项的子级选项,例如我们点击小米选项,右侧的2级选项就显示小米旗下的型号。

这里我们通过jinyong列来控制变色效果,首先要给中继器里需要变色的元件,包括文本标签、背景矩形、和箭头设置禁用样式,我们定义,如果jinyong列的值等于1,那么就禁用上面的元件。鼠标单击时,我们通过标记行的数据,将当前行jinyong列的值更新为1,就可以实现变色效果了,但是还有一个问题,就是如果前面有选择了其他选项,在点击选项,那就会有多个变色的选项,所以我在更新当前行之前,要先做一个还原的操作,我们可以先标记所有行,然后将所有行禁用列的值更新成不为1,这样就可以实现只有一个选项变色。

图片

当鼠标单击后,这行的jinyong列的值等于1时,我们就要控制右侧2级选项列表的值是否显示,这里我们定义,如果显示列的值等于1,就显示,如果不等于1,就用隐藏的交互将中继器里的元件隐藏

图片

那上面jinyong列的值等于1时,我们就可以通过更新,xianshi列的值来控制显示的内容,我们要显示的是,一级列表text列的值,等于2级列表text1列的值,符合条件的我们将他更新为1即可,这也和上面一样,设置一个还原的问题,所以我们同样需要,在更新之前,先标记所有行,将所有行的值更新为0,就是不显示,最后在更新符合条件的为1。

图片

这样就可以点击一级选项,显示对应的二级选项了

2.3 二级列表的选中、取消选中

二级列表是案例中最后一级,所以他只有选中和未选中两个状态,我们定义如果xuanzhong列的值等于1,就将他显示选中(全选)状态,否则就显示未选状态。

鼠标单击时选中按钮时,相当于想将已选状态变成未选中状态,所以我们用更新行的交互,将该行xuanzhong列的值更新为0。

图片

鼠标单击时未选按钮时,相当于想将未选状态变成选中状态,所以我们用更新行的交互,将该行xuanzhong列的值更新为1。

图片

2.4 二级列表的选中后添加标签

当中继器表格xuanzhong列的值为1时,我们用添加行的交互,将值添加到标签中继器里就可以了,这里标签的文字我们可以用text1列和text2列的值组合而成。

图片

因为中继器每次更新变动,他都会从头开始读取,所以你会发现前面选中的选项会出现重复,所以在中继器刚开始加载的时候,我们要用先将标签中继器的值还原,相当于清空,我们用标记行标记所有数据,然后用删除行删除,然后后面才是选中了一个个添加。

图片

2.5下拉框的自适应

添加标签后,我们要根据标签的大小,调整下拉框的大小和弹出列表的位置。当标签中继器加载到最后一行时,我们用设置尺寸的交互,调整下拉框矩形的高度为标签中继器的高度+边距,在将弹出组合移动到下拉框的下方。

图片

2.6一级列表的选中、取消选中

因为一级列表有三种形态,全选、半选和未选,所以如果点击未选状态和半选状态,相当于想将当前选项选中,并且全选2级列表对应的所有子级选项;如果点击的是全选状态,相当于想将一级列表当前选项选中变成未选中,并且2级列表所有对应的子级选项变成未选中。我们先定义,如果xuanzhong列的值等于全选,就显示全选(选中)的面板页;如果等于半选就显示半选的面板页,否则就默认显示未选的面板页。

图片

当鼠标单击未选或半选按钮时,我们用更新行的交互,将当前面板状态更新为全选状态,然后通过更新行的交互,将2级列表text1列值等于当前列表text列的值的选项,xuanzhong列的值更新为1

图片

当鼠标单击全选按钮时,相当于要取消当前选中,并且取消对应子级的选中,我们用更新行的交互,将当前面板状态更新为未选状态,然后通过更新行的交互,将2级列表text1列值等于当前列表text列的值的选项,xuanzhong列的值更新为0

图片

2.7一级列表的反选

上面我们并没有直接将一级列表选项的选中状态更新到一级列表中继器里,这是因为我们是通过2级列表来反选的,我们前面2级列表选项选中时xuanzhong列的值等于1,这样我们就可以通过统计该一级选项对应的二级选项的个数,以及对应xuanzhong列加总值是否一致,如果相等,就是全选了,我们用更新行的交互,将对应1级xuanzhong列的值更新为全选;如果不等于,并且选中的值大于0,就是半选,我们用更新行的交互,将对应1级xuanzhong列的值更新为半选;如果等于0,就是未选,更新行的交互,将对应1级xuanzhong列的值更新为未选。

图片

需要注意的是,和前面一样因为中继器每次更新都是从头开始读取,所以记录的显示数和统计数需要在加载开始的时候恢复默认值为0,然后再累计

2.8其他优化效果

最后,可以根据自己需要增加一些交互优化的效果,例如选项列表弹出时显示上箭头,收起后显示下箭头,或者鼠标移入选项变色等。

这样我们就完成了分级下拉列表原型模板了,后续使用也很方便,只需要在中继器表格里填写对应的选项,预览后即可自动生成对应的效果。

那以上就是本期教程的全部内容,感兴趣的同学们可以动手试试哦,感谢您的阅读,我们下期见。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot中的多环境配置管理

SpringBoot中的多环境配置管理 文章目录 SpringBoot中的多环境配置管理SpringBoot中的多环境配置管理 多环境配置的概述1. 为什么需要多环境配置?2. Spring Boot 中如何实现多环境配置?3. 多环境配置的应用场景4. 如何实现配置隔离? Spring B…

SOME/IP报文格式及发现协议详解

在之前的文章中,我们介绍了SOME/IP协议的几种服务接口。在本篇博客中,主要介绍some/ip协议传输的header报文格式以及SOME/IP-SD发现协议。 目录 流程 报文格式 Message ID Length Request ID protocal version/Interface Version Message Type…

使用Ollama本地部署deepseek

1、下载安装Ollama 前往下载页面 https://ollama.com/download下载好安装包,如同安装软件一样,直接安装即可 win中默认为C盘,如果需要修改到其他盘,查找具体教程 运行list命令,检查是否安装成功 2、修改模型下载的…

约束布局属性学习

1、layout_constraintHorizontal_bias layout_constraintHorizontal_bias 是 ConstraintLayout 中的一个重要属性,用于控制一个视图在父视图或相关视图中水平位置的偏移。这种偏移通过在0到1之间的浮点值来设置,0代表完全靠近左边或起始位置&#xff0c…

Windows双网卡冲突导致网页加载过慢的解决方法 (修改跃点无效 远程桌面连接)

【本文发布于https://blog.csdn.net/Stack_/article/details/145494160,未经许可不得转载,转载须注明出处】 办公室内,我的笔记本和台式机都连接WIFI进行上网,网段是192.168.0.x,网关192.168.0.101 现在要通过Windows自…

轻量级服务器http-server

安装 sudo npm install http-server -g 运行 1. 直接去到要跑起来的目录,在终端输入 cd xxxx文件夹http-server //只输入http-server的话,更新了代码后,页面不会同步更新http-server -c-1 //同步更新页面http-server -a 127.0.0.1 -p 808…

代码随想录算法【Day38】

Day38 322. 零钱兑换 思路 完全背包 代码 class Solution { public:int coinChange(vector<int>& coins, int amount) {vector<int> dp(amount 1, INT_MAX);dp[0] 0;for (int i 0; i < coins.size(); i) { // 遍历物品for (int j coins[i]; j <…

python+opencv+open3d实现鼠标手画多边形裁剪分割点云操作

👑主页:吾名招财 👓简介:工科学硕,研究方向机器视觉,爱好较广泛… ​💫签名:面朝大海,春暖花开! python+opencv+open3d实现鼠标手画多边形裁剪分割点云操作 引言使用效果:代码pcd_roi_crop.py:引言 当我们想对一个不规则物体的图像或者点云裁剪时,直接手动输入…

STM32的HAL库开发---通用定时器(TIMER)---定时器脉冲计数

一、脉冲计数实验原理 1、 外部时钟模式1&#xff1a;核心为蓝色部分的时基单元&#xff0c;时基单元的时钟源可以来自四种&#xff0c;分别是内部时钟PCLK、外部时钟模式1&#xff0c;外部时钟模式2、内部定时器触发&#xff08;级联&#xff09;。而脉冲计数就是使用外部时钟…

Redis05 - 性能调优和缓存问题

Redis性能调优和缓存问题 文章目录 Redis性能调优和缓存问题一&#xff1a;链路追踪判断是不是redis出了问题二&#xff1a;redis变慢原因1&#xff1a;使用复杂度过高的命令(*)1.1&#xff1a;查看redis慢日志1.2&#xff1a;延迟变大原因分析1.3&#xff1a;解决方案 2&#…

漫步 C++ 之途,领略引用的独特风姿

在C中&#xff0c;引用&#xff08;Reference&#xff09;是一种非常有用的特性&#xff0c;它允许为一个变量创建一个别名&#xff08;Alias&#xff09;。引用在很多情况下可以替代指针&#xff0c;但使用起来更加方便和安全。以下是对C引用的详细介绍&#xff0c;包括其定义…

Spring Boot Web 入门

目录 Spring Boot Web 是 Spring Boot 框架的一个重要模块&#xff0c;它简化了基于 Spring 的 Web 应用程序的开发过程。以下是一个 Spring Boot Web 项目的入门指南&#xff0c;涵盖了项目创建、代码编写、运行等关键步骤。 1. 项目创建 使用 Spring Initializr 使用 IDE …

Java 多线程、线程同步、线程池

一. 线程 1. 线程&#xff1a;线程(Thread)是一个程序内部的一条执行流程。 2. 程序中如果只有一条执行流程&#xff0c;那这个程序就是单线程的程序。 二. 多线程 多线程是指从硬件上实现多条执行流程的技术(多条线程由CPU负责调度) Javas是通过java.lang.Thread类的对象来代…

20.[前端开发]Day20-王者荣耀项目实战(三)

01_(掌握)王者荣耀-main-赛事新闻列表实现 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" …

【Langchain学习笔记(一)】Langchain介绍

Langchain介绍 Langchain介绍前言1、Langchain 是什么2、为什么要用 Langchain3、Langchain 的核心4、Langchain 的底层原理5、Langchain 的应用场景 Langchain介绍 前言 想象一下&#xff0c;如果你能让聊天机器人不仅仅回答通用问题&#xff0c;还能从你自己的数据库或文件…

IDEA2024版本创建Sping项目无法选择Java 8

目录 一、背景二、解决方式&#xff08;替换创建项目的源地址&#xff09; 一、背景 IDEA2024创建一个springboot的项目&#xff0c;本地安装的是1.8&#xff0c;但是在使用Spring Initializr创建项目时&#xff0c;发现版本只有17、21、23。 二、解决方式&#xff08;替换创…

C++11(四)

目录 包装器 function包装器 bind绑定 更改实参传递的顺序和实参传递的个数 线程库 本期我们将继续进行C11新特性的学习。 包装器 function包装器 function包装器&#xff0c;我们也称之为适配器&#xff0c;本质上就是一个类模板&#xff0c;为什么要引入function包…

MySQL 数据库编程-C++

目录 1 数据库基本知识 1.1 MYSQL常见命令 1.2 SQL注入 1.3 ORM框架 1 数据库基本知识 MySQL 为关系型数据库(Relational Database Management System), 这种所谓的"关系型"可以理解为"表格"的概念, 一个关系型数据库由一个或数个表格组成&#xff1a…

【算法篇】贪心算法

目录 贪心算法 贪心算法实际应用 一&#xff0c;零钱找回问题 二&#xff0c;活动选择问题 三&#xff0c;分数背包问题 将数组和减半的最小操作次数 最大数 贪心算法 贪心算法&#xff0c;是一种在每一步选择中都采取当前状态下的最优策略&#xff0c;期望得到全局最优…

5 计算机网络

5 计算机网络 5.1 OSI/RM七层模型 5.2 TCP/IP协议簇 5.2.1:常见协议基础 一、 TCP是可靠的&#xff0c;效率低的&#xff1b; 1.HTTP协议端口默认80&#xff0c;HTTPSSL之后成为HTTPS协议默认端口443。 2.对于0~1023一般是默认的公共端口不需要注册&#xff0c;1024以后的则需…