2016-03-31 14:17:09 +08:00
|
|
|
|
---
|
|
|
|
|
category: Components
|
2016-09-21 11:28:38 +08:00
|
|
|
|
subtitle: 滑动输入条
|
2022-11-09 12:28:04 +08:00
|
|
|
|
group: 数据录入
|
2016-09-21 11:28:38 +08:00
|
|
|
|
title: Slider
|
2022-11-30 20:14:41 +08:00
|
|
|
|
cover: https://mdn.alipayobjects.com/huamei_7uahnr/afts/img/A*_4heQaUrFn4AAAAAAAAAAAAADrJ8AQ/original
|
2023-02-09 22:17:31 +08:00
|
|
|
|
coverDark: https://mdn.alipayobjects.com/huamei_7uahnr/afts/img/A*XkgXTaudeosAAAAAAAAAAAAADrJ8AQ/original
|
2022-11-09 12:28:04 +08:00
|
|
|
|
demo:
|
|
|
|
|
cols: 2
|
2016-03-31 14:17:09 +08:00
|
|
|
|
---
|
2015-06-15 22:01:39 +08:00
|
|
|
|
|
2015-06-26 14:42:30 +08:00
|
|
|
|
滑动型输入器,展示当前值和可选范围。
|
2015-06-17 20:24:42 +08:00
|
|
|
|
|
2015-06-26 14:42:30 +08:00
|
|
|
|
## 何时使用
|
2015-06-17 20:24:42 +08:00
|
|
|
|
|
2015-11-18 17:50:22 +08:00
|
|
|
|
当用户需要在数值区间/自定义区间内进行选择时,可为连续或离散值。
|
2015-07-13 08:00:31 +08:00
|
|
|
|
|
2022-11-09 12:28:04 +08:00
|
|
|
|
## 代码演示
|
|
|
|
|
|
2022-11-17 17:31:26 +08:00
|
|
|
|
<!-- prettier-ignore -->
|
2022-11-09 12:28:04 +08:00
|
|
|
|
<code src="./demo/basic.tsx">基本</code>
|
|
|
|
|
<code src="./demo/input-number.tsx">带输入框的滑块</code>
|
|
|
|
|
<code src="./demo/icon-slider.tsx">带 icon 的滑块</code>
|
|
|
|
|
<code src="./demo/tip-formatter.tsx">自定义提示</code>
|
|
|
|
|
<code src="./demo/event.tsx">事件</code>
|
|
|
|
|
<code src="./demo/mark.tsx">带标签的滑块</code>
|
|
|
|
|
<code src="./demo/vertical.tsx">垂直</code>
|
|
|
|
|
<code src="./demo/show-tooltip.tsx">控制 ToolTip 的显示</code>
|
|
|
|
|
<code src="./demo/reverse.tsx">反向</code>
|
2023-02-23 21:56:43 +08:00
|
|
|
|
<code src="./demo/draggableTrack.tsx">范围可拖拽</code>
|
2023-09-22 14:19:53 +08:00
|
|
|
|
<code src="./demo/multiple.tsx">多点组合</code>
|
2023-06-15 10:22:17 +08:00
|
|
|
|
<code src="./demo/component-token.tsx" debug>组件 Token</code>
|
2022-11-09 12:28:04 +08:00
|
|
|
|
|
2015-07-13 08:00:31 +08:00
|
|
|
|
## API
|
|
|
|
|
|
2023-08-08 18:27:48 +08:00
|
|
|
|
通用属性参考:[通用属性](/docs/react/common-props)
|
|
|
|
|
|
2019-05-26 13:18:51 +08:00
|
|
|
|
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
|
|
|
| --- | --- | --- | --- | --- |
|
2023-07-11 23:03:40 +08:00
|
|
|
|
| autoFocus | 自动获取焦点 | boolean | false | |
|
2023-09-22 14:19:53 +08:00
|
|
|
|
| classNames | 语义化结构 className | Record<SemanticDOM, string> | - | 5.10.0 |
|
2020-07-01 17:28:59 +08:00
|
|
|
|
| defaultValue | 设置初始取值。当 `range` 为 false 时,使用 number,否则用 \[number, number] | number \| \[number, number] | 0 \| \[0, 0] | |
|
|
|
|
|
| disabled | 值为 true 时,滑块为禁用状态 | boolean | false | |
|
2023-02-03 15:16:27 +08:00
|
|
|
|
| keyboard | 支持使用键盘操作 handler | boolean | true | 5.2.0+ |
|
2019-05-26 13:18:51 +08:00
|
|
|
|
| dots | 是否只能拖拽到刻度上 | boolean | false | |
|
|
|
|
|
| included | `marks` 不为空对象时有效,值为 true 时表示值为包含关系,false 表示并列 | boolean | true | |
|
2021-02-01 14:24:47 +08:00
|
|
|
|
| marks | 刻度标记,key 的类型必须为 `number` 且取值在闭区间 \[min, max] 内,每个标签可以单独设置样式 | object | { number: ReactNode } or { number: { style: CSSProperties, label: ReactNode } } | |
|
2019-05-26 13:18:51 +08:00
|
|
|
|
| max | 最大值 | number | 100 | |
|
|
|
|
|
| min | 最小值 | number | 0 | |
|
2020-12-29 15:59:13 +08:00
|
|
|
|
| range | 双滑块模式 | boolean \| [range](#range) | false | |
|
2019-11-20 14:55:34 +08:00
|
|
|
|
| reverse | 反向坐标轴 | boolean | false | |
|
2020-07-01 17:28:59 +08:00
|
|
|
|
| step | 步长,取值必须大于 0,并且可被 (max - min) 整除。当 `marks` 不为空对象时,可以设置 `step` 为 null,此时 Slider 的可选值仅有 marks 标出来的部分 | number \| null | 1 | |
|
2023-09-22 14:19:53 +08:00
|
|
|
|
| styles | 语义化结构 className | Record<SemanticDOM, React.CSSProperties> | - | 5.10.0 |
|
2022-08-17 15:47:22 +08:00
|
|
|
|
| tooltip | 设置 Tooltip 相关属性 | [tooltip](#tooltip) | - | 4.23.0 |
|
2020-07-01 17:28:59 +08:00
|
|
|
|
| value | 设置当前取值。当 `range` 为 false 时,使用 number,否则用 \[number, number] | number \| \[number, number] | - | |
|
|
|
|
|
| vertical | 值为 true 时,Slider 为垂直方向 | boolean | false | |
|
2023-11-30 13:37:46 +08:00
|
|
|
|
| onChangeComplete | 与 `mouseup` 和 `keyup` 触发时机一致,把当前值作为参数传入 | (value) => void | - | |
|
2020-07-01 17:28:59 +08:00
|
|
|
|
| onChange | 当 Slider 的值发生改变时,会触发 onChange 事件,并把改变后的值作为参数传入 | (value) => void | - | |
|
2023-09-22 14:19:53 +08:00
|
|
|
|
|
|
|
|
|
### `styles` 和 `classNames` 属性
|
|
|
|
|
|
|
|
|
|
| 名称 | 说明 | 版本 |
|
|
|
|
|
| ------ | -------------------------------- | ------ |
|
|
|
|
|
| track | 范围选择下,点和点之间单个选取条 | 5.10.0 |
|
|
|
|
|
| tracks | 范围选择下,整个范围选取条 | 5.10.0 |
|
|
|
|
|
| rail | 背景条 | 5.10.0 |
|
|
|
|
|
| handle | 抓取点 | 5.10.0 |
|
2017-12-01 19:28:41 +08:00
|
|
|
|
|
2020-12-29 15:59:13 +08:00
|
|
|
|
### range
|
|
|
|
|
|
2022-08-17 15:47:22 +08:00
|
|
|
|
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
|
|
|
| -------------- | -------------------- | ------- | ------ | ------ |
|
|
|
|
|
| draggableTrack | 范围刻度是否可被拖拽 | boolean | false | 4.10.0 |
|
|
|
|
|
|
|
|
|
|
### tooltip
|
|
|
|
|
|
2021-03-01 19:20:48 +08:00
|
|
|
|
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
|
|
|
| --- | --- | --- | --- | --- |
|
2023-07-25 16:39:54 +08:00
|
|
|
|
| autoAdjustOverflow | 是否自动调整弹出位置 | boolean | true | 5.8.0 |
|
2022-08-17 15:47:22 +08:00
|
|
|
|
| open | 值为 true 时,Tooltip 将会始终显示;否则始终不显示,哪怕在拖拽及移入时 | boolean | - | 4.23.0 |
|
2022-12-13 15:49:05 +08:00
|
|
|
|
| placement | 设置 Tooltip 展示位置。参考 [Tooltip](/components/tooltip-cn) | string | - | 4.23.0 |
|
2022-08-17 15:47:22 +08:00
|
|
|
|
| getPopupContainer | Tooltip 渲染父节点,默认渲染到 body 上 | (triggerNode) => HTMLElement | () => document.body | 4.23.0 |
|
|
|
|
|
| formatter | Slider 会把当前值传给 `formatter`,并在 Tooltip 中显示 `formatter` 的返回值,若为 null,则隐藏 Tooltip | value => ReactNode \| null | IDENTITY | 4.23.0 |
|
2020-12-29 15:59:13 +08:00
|
|
|
|
|
2017-12-01 19:28:41 +08:00
|
|
|
|
## 方法
|
|
|
|
|
|
2022-08-17 15:47:22 +08:00
|
|
|
|
| 名称 | 描述 | 版本 |
|
|
|
|
|
| ------- | -------- | ---- |
|
|
|
|
|
| blur() | 移除焦点 | |
|
|
|
|
|
| focus() | 获取焦点 | |
|
2023-04-11 10:25:24 +08:00
|
|
|
|
|
2023-08-30 23:02:35 +08:00
|
|
|
|
## 主题变量(Design Token)
|
2023-04-11 10:25:24 +08:00
|
|
|
|
|
|
|
|
|
<ComponentTokenTable component="Slider"></ComponentTokenTable>
|