# Slider 슬라이더

슬라이더 입력입니다. min/max/step, range 듀얼 슬라이더, marks 눈금 라벨, showInput 수치 표시, 세 가지 크기와 비활성화를 지원하며, 마우스 드래그와 터치를 지원합니다.

슬라이더
<template>
  <div class="demo-col" style="max-width: 520px; gap: 26px">
    <div>
      <LhSlider v-model="single" :min="0" :max="100" :step="5" show-input />
      <p class="demo-note">min=0 max=100 step=5 showInput: {{ single }}</p>
    </div>
    <div>
      <LhSlider v-model="ranged" range :min="10" :max="90" :step="10" />
      <p class="demo-note">range 듀얼 슬라이더: {{ JSON.stringify(ranged) }}</p>
    </div>
    <div>
      <LhSlider v-model="marked" :min="0" :max="100" :marks="marks" />
      <p class="demo-note">marks 눈금 라벨: {{ marked }}</p>
    </div>
    <div>
      <LhSlider v-model="single" size="small" />
      <LhSlider v-model="single" disabled />
      <p class="demo-note">size="small"과 disabled</p>
    </div>
  </div>
</template>

<script>
export default {
  data: () => ({
    single: 35,
    ranged: [20, 60],
    marked: 40,
    marks: { 0: '붓을 들어', 50: '붓을 움직여', 100: '붓을 거두어' },
  }),
}
</script>

# Props

프로퍼티 설명 타입 기본값
v-model 바인딩 값, range일 때 [start, end] (model: modelValue/input) number \| [number, number] \| null —
min 최솟값 number 0
max 최댓값 number 100
step 스텝 값 number 1
range 듀얼 슬라이더 모드 boolean false
marks 눈금 라벨 { value: label } Record<number, string> —
showInput 수치 텍스트 표시 boolean false
size 크기 (트랙 높이) 'small' \| 'medium' \| 'large' 'medium'
disabled 비활성화 boolean false
sx sx 레이아웃 단축 속성 — —

# 이벤트

이벤트 설명 콜백 매개변수
input v-model 이벤트 (val)
change 값이 변경될 때 발생 (val)

# 접근성

슬라이더 핸들은 role="slider" + aria-valuemin/max/now입니다. LhFormItem 내에서 유효성 검사에 실패하면 aria-invalid가 부여됩니다.

Copyright © 2024-2026 FengMo WenXue