Slider

维护者:
Arucard89
GitHub
tooltipDisplay
disabled
validationState
errorMessage
size
min
max
step
marks
import {Slider} from '@gravity-ui/uikit';

滑块是一个可自定义的响应式 React 组件,允许用户从指定的数据集中选择单个值或一系列值。

滑块变体

单滑块

这是一个带有一个手柄的滑块,用于选择单个值。默认情况下使用它。

0100
Selected value: 0
<Slider />

范围滑块

这是带有两个手柄的滑块,用于选择范围。要使用它,请为数组设置 defaultValue (对于不受控制的滑块)或 value (对于受控滑块)。

0100
Selected value: 20,40
<Slider defaultValue={[20, 40]} />

国家

已禁用

这是一种 Slider 您不想允许用户使用此组件的状态。

0100
Selected value: 0
<Slider disabled={true} />

错误

Slider 状态适用于不正确的用户输入。要更改外 Slider 观,请使用带有 "invalid" 值的 validationState 属性。或者,您可以通过该 errorMessage 属性提供错误消息。此消息文本将在滑块下方显示。

0100
Selected value: 0
0100
Error message
Selected value: 0
<Slider validationState={"invalid"} />
<Slider validationState={"invalid"} errorMessage="Error message" />

大小

使用该 size 属性来管理大 Slider 小。默认大小为 m

0100
Selected value: 0
0100
Selected value: 0
0100
Selected value: 0
0100
Selected value: 0
<Slider size="s" />
<Slider size="m" />
<Slider size="l" />
<Slider size="xl" />

价值

最小值和最大值

minmax 属性定义了 Slider 可以处理的范围的限制。这些属性对于设置可选值的边界至关重要。

10100
Selected value: 10
050
Selected value: 0
2060
Selected value: 20
<Slider min={10} />
<Slider max={50} />
<Slider min={20} max={60} />

步骤

step 属性确定最小值和最大值范围内的增量。这意味着滑块移动一次,该值会发生多大变化。

0100
Selected value: 0
<Slider step={10} />

标记

Slider 组件中使用该 marks 属性来指定滑块上的视觉标记,这有助于指示最小值和最大值之间的各个点。此属性增强了滑块的可用性和可视界面,尤其是在表示特定间隔时。默认情况下,它是 2(minmax 值)。您可以通过两种不同的方式使用它:

  • 滑块上可视标记的数量
0102030405060708090100
Selected value: 0
<Slider marks={11} />
  • 滑块沿线的标记值数组
0100
Selected value: 0
<Slider marks={[0, 50, 100]} />

0 或者 marks 属性中的空数组 [] 值隐藏所有标记 Slider

0100
Selected value: 0
<Slider marks={0} />

标记值可供选择,即使它与 step 值条件不匹配

您可以使用 marksFormat 属性更改标记值的显示格式。

定义可用值

您可以将 step 属性设置为, null 以定义滑块可以处理的一组特定值,而不是连续范围。当只有特定的离散值可供选择时,这尤其有用。在这种情况下,属性 minmaxmarks 允许指定一个数字数组,表示允许用户使用选择的确切值 Slider

0100
Selected value: 0
<Slider marks={[10, 20, 50, 55, 65, 80]} step={null}/>

工具提示

tooltipDisplay 属性在 Slider 组件中用于控制工具提示的显示行为,该工具提示在用户与滑块交互时显示当前值。 auto 该值仅在 “ Slider的句柄被光标悬停或聚焦” 时才显示工具提示。

0
0100
Selected value: 0
<Slider tooltipDisplay="on" />

您可以使用 tooltipFormat 属性更改工具提示值的显示格式。如果您未指定 tooltipformat ,则将用于 marksFormat 在工具提示中显示该值。

属性

姓名描述类型默认
apiRef参考 Slider 的聚焦和模糊组件RefObject<SliderRef>
autoFocus控件的 autofocus 属性boolean
className控件的包装器类名string
defaultValue控件的默认值,在组件不受控制时使用number [number, number]0
已禁用表示用户无法与控件进行交互booleanfalse
errorMessage要显示的错误文本string
标记滑块下方的文字标记。可以设置为滑块标记的数量,也可以设置为应有标记的值数组。 0 或者空数组值隐藏所有标记。number number[]2
marksFormat标记显示值的格式化程序(value: number) => string
最大组件的最大值。number100
分钟组件的最小值。number0
onBlur当控件失去对焦时触发。提供焦点事件作为回调的参数(e:FocusEvent<HTMLDivElement, Element>) => 无效)
onUpdate当用户更改滑块的值时触发。提供变更事件作为回调的参数(值:数字| [数字、数字]) => 无效)
onUpdateComplete触发 ontouchend 或 onmouseup 时触发。提供变更事件作为回调的参数(值:数字| [数字、数字]) => 无效)
onFocus当控件获得焦点时触发。提供焦点事件作为回调的参数(e:FocusEvent<HTMLDivElement, Element>) => 无效)
大小控件的大小"s" "xl""m"
滑块的每一步都要加上或减去的值。可以设置 nullmarks 按步骤制作。number null1
tabIndex控件的 tabIndex 属性number [number, number]
tooltipDisplay工具提示的显示行为off autooff
tooltipFormat工具提示显示值的格式化程序。marksFormat 如果未设置,则使用(value: number) => string
validationState验证状态"invalid"
价值控件的价值number [number, number]