2016-07-21 09:51:04 +08:00
---
category: Components
2022-11-09 12:28:04 +08:00
group: Data Entry
2016-07-21 09:51:04 +08:00
title: Slider
2024-03-22 14:22:42 +08:00
description: A Slider component for displaying current value and intervals in range.
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-07-21 09:51:04 +08:00
---
2016-09-10 13:43:30 +08:00
## When To Use
2016-07-21 09:51:04 +08:00
To input a value in a range.
2022-11-09 12:28:04 +08:00
## Examples
2022-11-17 17:31:26 +08:00
<!-- prettier - ignore -->
2022-11-09 12:28:04 +08:00
< code src = "./demo/basic.tsx" > Basic< / code >
< code src = "./demo/input-number.tsx" > Slider with InputNumber< / code >
< code src = "./demo/icon-slider.tsx" > Slider with icon< / code >
< code src = "./demo/tip-formatter.tsx" > Customize tooltip< / code >
< code src = "./demo/event.tsx" > Event< / code >
< code src = "./demo/mark.tsx" > Graduated slider< / code >
< code src = "./demo/vertical.tsx" > Vertical< / code >
< code src = "./demo/show-tooltip.tsx" > Control visible of ToolTip< / code >
< code src = "./demo/reverse.tsx" > Reverse< / code >
2023-02-23 21:56:43 +08:00
< code src = "./demo/draggableTrack.tsx" > Draggable track< / code >
2023-09-22 14:19:53 +08:00
< code src = "./demo/multiple.tsx" > Multiple handles< / code >
2023-06-15 10:22:17 +08:00
< code src = "./demo/component-token.tsx" debug > Component Token< / code >
2022-11-09 12:28:04 +08:00
2016-07-21 09:51:04 +08:00
## API
2023-08-08 18:27:48 +08:00
Common props ref: [Common props](/docs/react/common-props)
2019-05-26 13:18:51 +08:00
| Property | Description | Type | Default | Version |
| --- | --- | --- | --- | --- |
2020-07-01 17:28:59 +08:00
| autoFocus | Whether get focus when component mounted | boolean | false | |
2024-02-05 11:45:42 +08:00
| classNames | Semantic structure className | [Record<SemanticDOM, string> ](#semantic-dom ) | - | 5.10.0 |
2020-07-01 17:28:59 +08:00
| defaultValue | The default value of slider. When `range` is false, use number, otherwise, use \[number, number] | number \| \[number, number] | 0 \| \[0, 0] | |
2022-11-19 22:56:58 +08:00
| disabled | If true, the slider will not be intractable | boolean | false | |
2023-02-03 15:16:27 +08:00
| keyboard | Support using keyboard to move handlers | boolean | true | 5.2.0+ |
2020-07-01 17:28:59 +08:00
| dots | Whether the thumb can drag over tick only | boolean | false | |
| included | Make effect when `marks` not null, true means containment and false means coordinative | boolean | true | |
2021-02-01 14:24:47 +08:00
| marks | Tick mark of Slider, type of key must be `number` , and must in closed interval \[min, max], each mark can declare its own style | object | { number: ReactNode } \| { number: { style: CSSProperties, label: ReactNode } } | |
2019-05-26 13:18:51 +08:00
| max | The maximum value the slider can slide to | number | 100 | |
2020-07-01 17:28:59 +08:00
| min | The minimum value the slider can slide to | number | 0 | |
| range | Dual thumb mode | boolean | false | |
| reverse | Reverse the component | boolean | false | |
2024-06-13 16:27:01 +08:00
| step | The granularity the slider can step through values. Must greater than 0, and be divided by (max - min) . When `step` is `null` but exist `marks` , the valid point will only be the `mark` , `min` and `max` | number \| null | 1 | |
2024-02-05 11:45:42 +08:00
| styles | Semantic structure style | [Record<SemanticDOM, React.CSSProperties> ](#semantic-dom ) | - | 5.10.0 |
2022-08-17 15:47:22 +08:00
| tooltip | The tooltip relate props | [tooltip ](#tooltip ) | - | 4.23.0 |
2020-10-21 10:33:43 +08:00
| value | The value of slider. When `range` is false, use number, otherwise, use \[number, number] | number \| \[number, number] | - | |
2020-07-01 17:28:59 +08:00
| vertical | If true, the slider will be vertical | boolean | false | |
2023-11-30 13:37:46 +08:00
| onChangeComplete | Fire when `mouseup` or `keyup` is fired | (value) => void | - | |
2020-07-01 17:28:59 +08:00
| onChange | Callback function that is fired when the user changes the slider's value | (value) => void | - | |
2023-09-22 14:19:53 +08:00
2020-12-29 15:59:13 +08:00
### range
2022-08-17 15:47:22 +08:00
| Property | Description | Type | Default | Version |
| -------------- | ------------------------------- | ------- | ------- | ------- |
| draggableTrack | Whether range track can be drag | boolean | false | 4.10.0 |
### tooltip
2022-11-30 10:07:11 +08:00
| Property | Description | Type | Default | Version |
2021-03-01 19:20:48 +08:00
| --- | --- | --- | --- | --- |
2024-04-12 11:49:27 +08:00
| autoAdjustOverflow | Whether to automatically adjust the popup position | boolean | true | 5.8.0 |
2022-08-17 15:47:22 +08:00
| open | If true, Tooltip will show always, or it will not show anyway, even if dragging or hovering | boolean | - | 4.23.0 |
| placement | Set Tooltip display position. Ref [Tooltip ](/components/tooltip/ ) | string | - | 4.23.0 |
| getPopupContainer | The DOM container of the Tooltip, the default behavior is to create a div element in body | (triggerNode) => HTMLElement | () => document.body | 4.23.0 |
| formatter | Slider will pass its value to `formatter` , and display its value in Tooltip, and hide Tooltip when return value is null | value => ReactNode \| null | IDENTITY | 4.23.0 |
2020-12-29 15:59:13 +08:00
2017-12-01 19:28:41 +08:00
## Methods
2022-08-17 15:47:22 +08:00
| Name | Description | Version |
| ------- | ------------ | ------- |
| blur() | Remove focus | |
| focus() | Get focus | |
2023-04-11 10:25:24 +08:00
2024-02-05 11:45:42 +08:00
## Semantic DOM
< code src = "./demo/_semantic.tsx" simplify = "true" > < / code >
2023-04-11 10:25:24 +08:00
## Design Token
< ComponentTokenTable component = "Slider" > < / ComponentTokenTable >