返回知识库

界面与交互 · 操作与输入

滑块Slider

在一个有顺序的连续或分段范围内拖动选择数值的控件;当前值、范围、步长和与精确输入的联动要长在物件上。

拖价格上限,看商品卡自己亮 / 灰

滑块不是「一根能拖的条」。当前值、范围、步长、与精确输入的联动、松手才应用,这五件事要落在物件上,不是只靠底部一行说明。

你在挑礼物,预算有限。拖动滑块或直接输入价格上限,看 4 件商品哪几件落在范围内。 当前值、范围、步长和「松手才应用」都长在物件上,不只是底部一行字。

价格上限已应用,列表已按当前上限刷新步长 ¥100
¥600
  • 蓝牙耳机¥299可买
  • 手机壳¥550可买
  • 充电宝¥800超限
  • 机械键盘¥1200超限

原因:当前价格上限 ¥600,2/4 件商品在范围内。下一步:继续拖动调上限,或在输入框敲一个精确数字。对照:拖动只走步长倍数(如 100、200…);要敲到 650 这种值,用输入框并会按步长对齐。

滑块的四件套

刚才面板里反复出现的四件事,命名一下。

  • 当前值始终带单位和范围可见。用户不该靠拇指位置猜金额,要在物件头上直接看到「¥600」。
  • 范围与边界最小值和最大值来自业务(库存、预算、物理极限)。触顶触底要让物件自己说明,而不是悄悄卡住。
  • 步长拖动只落在倍数上(如 100、200…)。换更细的步长时,已有的值要对齐到新刻度,不能停在两个档中间。
  • 与精确输入联动连续粗调用滑块,要敲到个位精确值就配输入框,两者双向同步并按步长对齐。

什么时候用它

看到「连续或分段、有自然顺序、粗调即可」这组信号,才考虑滑块。

适合

价格上限、音量、屏幕亮度、字号、对比度。它们能在一段范围里任意取值,粗调一档就够,不需要精确到个位。

不适合

离散无序的类别(配送方式、套餐类型)、需要精确到个位的金额结算、标识符(银行卡号、手机号)。它们要么没有「大小顺序」,要么每一步都有明确含义。

怎么用对,避开三个坑

标签、当前值、范围同时可见;配输入框给精确值;拖动预览、松手应用。

  • 标签 + 当前值 + 两端范围同时可见:<input type="range" min max step value><output>aria-valuetext 朗读金额。
  • 精确值配输入框:金额、时间这类需要个位的任务,给一个 type="number" 与滑块双向同步,越界锁回并说明,不静默改值。
  • 松手才请求:拖动时(onInput)只做预览,松手(onChange / onPointerUp)再刷新结果,避免一路狂发筛选请求。
  • 键盘可达:方向键按步长 ±1,PageUp/PageDown 大步,Home/End 直接到两端;触顶触底时按钮或物件自己说明。

正反例:选价格上限 vs 选配送方式

同一个「选一个」的界面位置,换一种数据性质,滑块就从顺手变成折磨。

正例价格上限用滑块 + 输入框

价格是连续有序的数值,¥0–¥1000 之间任意值都有意义,粗调一档就能筛掉超预算的商品;要敲 ¥650 这种值时输入框接手,并按步长对齐。

反例配送方式用滑块

快递、自取、闪送是三个离散且无序的选项,没有「比快递大一点」这种概念。塞进滑块后,用户只能死记「中点是自取」,无法粗调,也读不出当前选了谁——这种场景该用单选或分段控件。

快速自测

下面三个需求,哪个最适合用滑块?

继续查证

术语的技术定义和行为以这些一手或权威资料为准。

下一步学

和本知识点经常一起出现的概念。