冷门组件「滑动输入条」不考虑了解下?
wptr33 2025-01-14 17:34 16 浏览
编辑导语:在交互设计时,需要结合不同的用户需求去运用不同合适的组件。滑动输入条作为一个输入数值的组件,却鲜少给用到。这篇文章里,作者将会详细介绍“滑动输入条”以及设计注意点。
当新手设计师想帮助用户完成选择任务时,往往第一反应会往「radio button」与「check box」的方向去思考交互设计。
此时就会有一个冷门被人遗忘的交互控件「slider滑动输入条」在角落里努力呐喊着:“我也很乖很好用啊,设计师可否考虑一下让我也出镜一下啊?”那么今天我们就让它当一回主角,看看「滑动输入条」到底是怎么用的。
一、有序数据与无序数据
在进入「滑动输入条」介绍之前我们先来介绍两个概念「有序数据」与「无序数据」。
什么叫有序数据:符合某一种逻辑,且此逻辑具有普遍共识性的数据可以称作为「有序数据」,它的维度可以是“大小”、“数值”、“等级”、“时间”等等。
什么叫无序数据:不符合大众认知逻辑的数据可以称作为「无序数据」。
杠精预防提示:这里小编提出的概念只是易于让大家理解「滑动输入条」,并不是逻辑学、数学或等一些领域对于「有序数据」,「无序数据」的定义概念,杠精请高抬贵手。
二、「滑动输入条」的定义
1. 「滑动输入条」的物理隐喻
在老式的汽车控制台当中存在很多滑动输入物理信息的控制设备,比如空调温度,汽车音响音量。它们可以很好地把物理世界信息转换到汽车控制系统中,并且这种控制形式反馈及时,不占用太多空间、操作控制极其简单。
2. 「滑动输入条」的交互定义
以水平或垂直轨道的形式,或者以圆形拨动的形式出现,用户从一系列「有序数据」范围内进行颗粒度选择的交互形式统称为「滑动输入条」。
三、「滑动输入条」的基本结构
这里引用下MATERIAL DESIGN对于「滑动输入条」的结构示意图:
1. 追踪杆(Track)
显示可供用户选择的范围。一般情况下最小的值出现在最左端,最大的值出现在最右端。同时对于特殊情况下比如阿拉伯文化下,这种方向是相反的。
2. 滑块(Thumb)
滑块,可以沿着轨道移动,显示其位置的选定值。
3. 标签值( Value label)(可选)
滑块所处位置的实际刻度数值。
4. 刻度(Tick mark)
刻度标记着用户可以通过移动滑块所能到达的预定值。
这里是基于MATERIAL DESIGN给出的「slider」基本结构,设计师平常使用该组件的时候完全可以根据自己的需求进行自定义设计。
四、「滑动输入条」的交互状态
对于「滑动输入条」组件的交互状态,就谷歌Material Design而言他给出五种交互状态的定义,分别是:启用、禁用、悬停、聚焦和按压状态。
五、「滑动输入条」的应用形式
1. 单滑块
- 值是单选且为连续数据时使用自由拖动的滑杆,其允许用户在一个主观范围内选择一个值。
- 值是单选且为离散数据时使用带有刻度的滑杆,其可以调整到一个特定的刻度值上。
2. 多滑块
当需要选定某一个区间(比如金额上下限),或者多个区间(比如ps里面渐变的调色杆)的时候可以考虑使用多滑块组件。
3. 与步进器配合使用
当「滑动输入条」的数据范围广泛难以精确定位时,用户就希望用「步进器」配合「滑动输入条」共同帮助他们完成任务。同时「步进器」独有的增加按钮以及减少按钮可以让用户更方便的取值,并对其进行高精度的校准。
六、「滑动输入条」的设计注意点
跟「开关」组件一样在交互设计当中都是属于小玩意儿,但是小玩意儿有小道道儿,你品你仔细品。
1. 巧用图标释意
在滑杆左右两侧设计相对应含义的图标是一种不错的设计策略,这种做法能让用户提前感知有序值的范围以及极限值的情况,在控制音量、字号大小、明度调节等一些场景比较常见。
2. 输入即生效
「滑动输入条」与「开关」一样无论是从物理隐喻上类比,还是从用户对该组件惯有心智预期上理解,都是希望它是输入即生效的,从某种意义上来说它算是一种数据可视化设计。
3. 注意热区范围
「滑动输入条」在PC端情况中由于是用鼠标去与它进行交互,我们可以将滑块的操作范围做的比较小。但是如果在移动端设备上我们对于它的操作热区就要深思熟虑了,如果还是延续pc端的操作热区会让用户十分抓狂,适当扩大交互区域不失为一个优雅的设计。
4. 支持键盘操作
「滑动输入条」在PC端产品使用时,如果没有配合「步进器」一起使用的话,那么设计的时候就要考虑让用户在键盘上需要使用“??”“??”按钮来对其进行小范围的调整。毕竟用鼠标控制「滑动输入条」是一件很粗糙的事情,对一些需要精度较高场景就很困难了。
5. 支持点击跳转
当用户对于输入「滑动输入条」的值有大致预判,并且对结果值精度要求不高,那么很大意义上用户就需要一个点击跳转的交互操作了。这样可以让用户快速的找到自己所需要的值,快速而高效。
6. 适当使用情感化设计
对于一些C端产品而言,对「滑动输入条」进行生动活泼的情感化设计可以很好的降低用户对于输入值的理解成本,并且感知也更加直观立体。
7. 考虑不同文化场景
在我们的文化场景中一般的逻辑顺序都是范围的最小值显示在左侧,最大值显示在右侧,但是碰到一些特殊的场景这个设计方法就需要深思熟虑,比如在阿拉伯文化当中与我们恰恰相反,值的位置应该颠倒,最大的值放在左边,最小的放在右边。
七、文末总结
虽然「滑动输入条」可讲的点不多小编也是绞尽脑汁才总结出几点,但是并不妨碍它是一种出色的交互控件,只是在平常的设计工作当中总是被人们习惯性的遗忘。
但它们也不是万能的工具。当用户想要找到精度要求相对不怎么高的值时,它们很好用。但即使有「步进器」配合,对于需要输入高精度信息的场景时表现也不太好。所以在设计「滑动输入条」时,衡量交互成本并确保用户可以第一时间从一系列有序数据当中快速找到想要的值是非常考验设计功底的。
作者:月亮与六便士;公众号:月亮体验设计坊
本文由 @月亮与六便士 原创发布于人人都是产品经理,未经作者许可,禁止转载。
题图来Unsplash,基于CC0协议。
相关推荐
- C++企业级开发规范指南(c++开发gui)
-
打造高质量、可维护的C++代码标准一、前言C++作为一门功能强大的系统级编程语言,被广泛应用于操作系统、游戏引擎、高性能服务器、数据库系统等领域。知名互联网公司(如Google、Microsoft、腾...
- C++|整型的最值、上溢、下溢、截断、类型提升和转换
-
整数在计算机内以有限字长表示,当超出最值(有限字长)时,需要截断(溢出,求模)操作。不同字长的整型具有不同的值域,混合运算时,需要类型提升和转换。1整形最值在<limit.h>中有整型的...
- C++|漫谈STL细节及内部原理(c++ std stl)
-
1988年,AlexanderStepanov开始进入惠普的PaloAlto实验室工作,在随后的4年中,他从事的是有关磁盘驱动器方面的工作。直到1992年,由于参加并主持了实验室主任BillWo...
- C++11新特性总结 (二)(c++11新特性 pdf)
-
1.范围for语句C++11引入了一种更为简单的for语句,这种for语句可以很方便的遍历容器或其他序列的所有元素vector<int>vec={1,2,3,4,5,6};f...
- C++ STL 漫谈(c++中的stl到底指的什么)
-
标准模板库(StandardTemplateLibrary,STL)是惠普实验室开发的一个函数库和类库。它是由AlexanderStepanov、MengLee和DavidRMusser在...
- C++学习教程_C++语言随到随学_不耽误上班_0基础
-
C++学习教程0基础学C++也可以,空闲时间学习,不耽误上班.2019年C语言新课程已经上线,随到随学,互动性强,效果好!带你征服C++语言,让所有学过和没有学过C++语言的人,或是正准备学习C++语...
- C++遍历vector元素的四种方式(c++ 遍历vector)
-
vector是相同类型对象的集合,集合中的每个对象有个对应的索引。vector常被称为容器(container)。C++中遍历vector的所有元素是相当常用的操作,这里介绍四种方式。1、通过下标访问...
- 一起学习c++11——c++11中的新增的容器
-
c++11新增的容器1:array当时的初衷是希望提供一个在栈上分配的,定长数组,而且可以使用stl中的模板算法。array的用法如下:#include<string>#includ...
- C++编程实战基础篇:一维数组应用之投票统计
-
题目描述班上有N个同学,有五位候选人“A,B,C,D,E”,请所有的同学投票并选举出班长,现在请你编写程序来他们计算候选人的得票总数,每位同学投票将以数字的形式投票“12345”分别代表五位候选人,...
- C++20 新特性(6):new表达式也支持数组大小推导
-
new表达式也支持数组大小推导在C++17标准中,在定义并初始化静态数组时,是可以忽略数组大小,然后通过初始化数据来推导数组的大小。但使用new来定义并初始化动态数组时,并不支持这种自动推导数组大...
- C++ 结构体(struct)最全详解(c++结构体用法)
-
一、定义与声明1.先定义结构体类型再单独进行变量定义structStudent{intCode;charName[20];charSex;intA...
- 自学 C++ 第 6 课 二维数组找最值
-
键盘输入一个m×n的二维数组,通过C++编程找出元素中的最大值,并输出其所在的位置坐标。例如,输入一个4×5的二维数组,数组元素分别为{{556623749},{578964563},...
- 从缺陷中学习C/C++:聊聊 C++ 中常见的内存问题
-
在写C/C++程序时,一提到内存,大多数人会想到内存泄露。内存泄露是一个令人头疼的问题,尤其在开发大的软件系统时。一个经典的现象是,系统运行了10天、1个月都好好的,忽然有一天宕机了:OOM(Out...
- C++开发者都应该使用的十个C++11特性(上)
-
在C++11新标准中,语言本身和标准库都增加了很多新内容,本文只涉及了一些皮毛。不过我相信这些新特性当中有一些,应该成为所有C++开发者的常规装备。你也许看到过许多类似介绍各种C++11特性的文章。下...
- 深度解读C/C++指针与数组(c++指针和数组的区别)
-
指针和数组是密切相关的。事实上,指针和数组在很多情况下是可以互换的。例如,一个指向数组开头的指针,可以通过使用指针的算术运算或数组索引来访问数组。今天我们就来聊一聊数组和指针千丝万缕的关系;一维数组与...
- 一周热门
-
-
C# 13 和 .NET 9 全知道 :13 使用 ASP.NET Core 构建网站 (1)
-
因果推断Matching方式实现代码 因果推断模型
-
git pull命令使用实例 git pull--rebase
-
面试官:git pull是哪两个指令的组合?
-
git 执行pull错误如何撤销 git pull fail
-
git fetch 和git pull 的异同 git中fetch和pull的区别
-
git pull 和git fetch 命令分别有什么作用?二者有什么区别?
-
git pull 之后本地代码被覆盖 解决方案
-
还可以这样玩?Git基本原理及各种骚操作,涨知识了
-
git命令之pull git.pull
-
- 最近发表
- 标签列表
-
- git pull (33)
- git fetch (35)
- mysql insert (35)
- mysql distinct (37)
- concat_ws (36)
- java continue (36)
- jenkins官网 (37)
- mysql 子查询 (37)
- python元组 (33)
- mybatis 分页 (35)
- vba split (37)
- redis watch (34)
- python list sort (37)
- nvarchar2 (34)
- mysql not null (36)
- hmset (35)
- python telnet (35)
- python readlines() 方法 (36)
- munmap (35)
- docker network create (35)
- redis 集合 (37)
- python sftp (37)
- setpriority (34)
- c语言 switch (34)
- git commit (34)