슬라이더
슬라이더 (Slider)
출처: 문서
본문
고정된 범위 안에서 슬라이더를 드래그해서 값을 선택하는 컴포넌트예요.
기본 사용법 (Basic Usage)
슬라이더를 드래그하는 동안 현재 값이 표시돼요. 바인딩 값을 설정하면 슬라이더의 초기 값을 원하는 대로 바꿀 수 있어요.
- 커스텀한 초기 값 (Customized initial value)
- 툴팁 숨기기 (Hide Tooltip)
- 툴팁 형식 지정 (Format Tooltip)
- 비활성화 (Disabled)
.slider-demo-block {
max-width: 600px;
display: flex;
align-items: center;
}
.slider-demo-block .el-slider {
margin-top: 0;
margin-left: 12px;
}
.slider-demo-block .demonstration {
font-size: 14px;
color: var(--el-text-color-secondary);
line-height: 44px;
flex: 1;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
margin-bottom: 0;
}
.slider-demo-block .demonstration + .el-slider {
flex: 0 0 70%;
}
이산 값 (Discrete Values)
선택할 수 있는 값들을 이산적으로 나눌 수 있어요.
step 속성으로 스텝 크기를 정하고, show-stops 속성을 설정하면 중간 지점을 표시해줘요.
.slider-demo-block {
max-width: 600px;
display: flex;
align-items: center;
}
.slider-demo-block .el-slider {
margin-top: 0;
margin-left: 12px;
}
.slider-demo-block .demonstration {
font-size: 14px;
color: var(--el-text-color-secondary);
line-height: 44px;
flex: 1;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
margin-bottom: 0;
}
.slider-demo-block .demonstration + .el-slider {
flex: 0 0 70%;
}
입력 상자가 있는 슬라이더 (Slider with Input Box)
입력 상자를 통해 값을 설정할 수 있어요.
show-input 속성을 설정하면 오른쪽에 입력 상자가 표시돼요.
.slider-demo-block {
max-width: 600px;
display: flex;
align-items: center;
}
.slider-demo-block .el-slider {
margin-top: 0;
margin-left: 12px;
}
크기 (Sizes)
.slider-demo-block {
max-width: 600px;
}
.el-slider {
margin-top: 20px;
}
.el-slider:first-child {
margin-top: 0;
}
배치 (Placement)
툴팁의 위치를 직접 지정할 수 있어요.
.slider-demo-block {
max-width: 600px;
display: flex;
align-items: center;
}
.slider-demo-block .el-slider {
margin-top: 0;
margin-left: 12px;
}
범위 선택 (Range Selection)
값의 범위를 선택하는 것도 지원해요.
range 속성을 설정하면 범위 모드가 활성화되고, 바인딩 값은 두 경계 값으로 구성된 배열이 돼요.
.slider-demo-block {
max-width: 600px;
display: flex;
align-items: center;
}
.slider-demo-block .el-slider {
margin-top: 0;
margin-left: 12px;
}
세로 모드 (Vertical Mode)
vertical 속성을 true로 설정하면 세로 모드가 돼요. 세로 모드에서는 height 속성이 필수예요.
.slider-demo-block {
max-width: 600px;
display: flex;
align-items: center;
}
.slider-demo-block .el-slider {
margin-top: 0;
margin-left: 12px;
}
마크 표시 (Show Marks)
marks 속성을 설정하면 슬라이더 위에 마크를 표시할 수 있어요.
.slider-demo-block {
max-width: 600px;
display: flex;
align-items: center;
}
.slider-demo-block .el-slider {
margin-top: 0;
margin-left: 12px;
}
값 제한 (Restrict Value)
step="mark"로 설정하면 슬라이더 값을 마크로 제한할 수 있어요.
.slider-demo-block {
max-width: 600px;
display: flex;
align-items: center;
}
.slider-demo-block .el-slider {
margin-top: 0;
margin-left: 12px;
}
.slider-demo-block + .slider-demo-block {
margin-top: 20px;
}
API
속성 (Attributes)
| Name | Description | Type | Default |
|---|---|---|---|
| model-value / v-model | 바인딩 값 | number / array | 0 |
| min | 최소값 | number | 0 |
| max | 최대값 | number | 100 |
| disabled | Slider 비활성화 여부 | boolean | false |
| step | 스텝 크기. 숫자 또는 'mark'(2.13.6)로 설정해 값을 마크로 제한할 수 있어요. 'mark'로 설정하면 marks 속성이 반드시 필요해요 |
number / string | 1 |
| show-input | 입력 상자 표시 여부. range가 false이고 step이 'mark'가 아닐 때 동작해요 | boolean | false |
| show-input-controls | show-input이 true일 때 컨트롤 버튼 표시 여부 | boolean | true |
| size | 슬라이더 래퍼의 크기. 세로 모드에서는 동작하지 않아요 | enum | default |
| input-size | 입력 상자의 크기. size를 설정하면 기본값은 size의 값이 돼요 | enum | default |
| show-stops | 중간 지점 표시 여부 | boolean | false |
| show-tooltip | 툴팁 값 표시 여부 | boolean | true |
| format-tooltip | 툴팁 값의 표시 형식 | Function | — |
| range | 범위 선택 여부 | boolean | false |
| vertical | 세로 모드 | boolean | false |
| height | 슬라이더 높이. 세로 모드에서 필수예요 | string | — |
| aria-label a11y 2.7.2 | 네이티브 aria-label 속성 | string | — |
| range-start-label | range가 true일 때 범위 시작을 위한 스크린 리더 라벨 | string | — |
| range-end-label | range가 true일 때 범위 끝을 위한 스크린 리더 라벨 | string | — |
| format-value-text | 스크린 리더를 위한 aria-valuenow 속성의 표시 형식 | Function | — |
| tooltip-class | 툴팁의 커스텀 클래스 이름 | string | — |
| placement | Tooltip의 위치 | enum | top |
| marks | 마크. 키 타입은 number여야 하고 닫힌 구간 [min, max] 안에 있어야 해요. 각 마크에 스타일을 지정할 수 있어요 | object | — |
| validate-event | 폼 검증 트리거 여부 | boolean | true |
| persistent 2.9.5 | 슬라이더 툴팁이 비활성 상태이고 persistent가 false면 툴팁이 파괴돼요. show-tooltip이 false면 persistent는 항상 false예요 | boolean | true |
| label a11y deprecated | 네이티브 aria-label 속성 | string | — |
이벤트 (Events)
| Name | Description | Type |
|---|---|---|
| change | 값이 변경될 때 트리거돼요. (마우스로 드래그 중이면 마우스를 놓을 때만 발생해요) | Function |
| input | 데이터가 변경될 때 트리거돼요. (슬라이딩 중에 실시간으로 발생해요) | Function |
타입 선언 (Type Declarations)
type SliderMarks = Record
type Arrayable = T | T[]