开发预览 更新于 2026-05-10

Slider 滑块

单值范围滑块,3 档尺寸 × 4 种 tone,支持 step、刻度、当前值气泡,全键盘可达。

基础用法

最简形态 — 0 到 100 的连续值,鼠标拖拽 thumb 或键盘 ← → 调整。showValue 在 thumb 上挂一个气泡显示当前值。

40
<CfSlider v-model="value" show-value />
<CfSlider value={value} onChange={setValue} showValue />

4 种 tone

tone 控制填充色 — primary(默认)/ success / warning / danger。语义化用色,对应 token 里 4 套 --accent-* / --status-*

60
60
60
60
<CfSlider v-model="a" tone="primary" show-value />
<CfSlider v-model="b" tone="success" show-value />
<CfSlider v-model="c" tone="warning" show-value />
<CfSlider v-model="d" tone="danger" show-value />
<CfSlider value={a} onChange={setA} tone="primary" showValue />
<CfSlider value={b} onChange={setB} tone="success" showValue />
<CfSlider value={c} onChange={setC} tone="warning" showValue />
<CfSlider value={d} onChange={setD} tone="danger" showValue />

三档尺寸

size 改变轨道粗细与 thumb 直径:sm(细)/ md(默认)/ lg(粗,触摸友好)。

<CfSlider v-model="a" size="sm" />
<CfSlider v-model="b" size="md" />
<CfSlider v-model="c" size="lg" />
<CfSlider value={a} onChange={setA} size="sm" />
<CfSlider value={b} onChange={setB} size="md" />
<CfSlider value={c} onChange={setC} size="lg" />

步进与刻度

step 控制每次步进的最小单位。ticks 在每个 step 位置渲染一个刻度点 — 适合离散值(评分 / 等级);当 (max-min)/step > 50 时刻度自动忽略避免视觉拥挤。

3
40
<!-- 0~5 评分 -->
<CfSlider v-model="stars" :min="0" :max="5" :step="1" ticks show-value />
<!-- 10% 步进 -->
<CfSlider v-model="percent" :step="10" ticks show-value />
<CfSlider value={stars} onChange={setStars} min={0} max={5} step={1} ticks showValue />
<CfSlider value={percent} onChange={setPercent} step={10} ticks showValue />

禁用

disabled 灰显且阻止鼠标 / 键盘交互;当前值仍按 prop 显示。

50
<CfSlider :model-value="50" disabled show-value />
<CfSlider value={50} disabled showValue />

事件与提交

拖拽时 change 持续返回当前值;松开指针或键盘提交时触发 changeEnd / onChangeEnd。meta 会标记来源是 pointer 还是 keyboard,便于区分实时预览和最终保存。

40
idleCPU 预留 40%
拖动或用键盘调整滑块,会记录 change 与 changeEnd。
<CfSlider
v-model="cpu"
:step="5"
ticks
show-value
@change="(value, meta) => preview(value, meta.source)"
@change-end="(value, meta) => save(value, meta.source)"
/>
<CfSlider
value={cpu}
step={5}
ticks
showValue
onChange={(value, meta) => preview(value, meta.source)}
onChangeEnd={(value, meta) => save(value, meta.source)}
/>

键盘交互

按键行为
/ 减少 1 个 step
/ 增加 1 个 step
PgDn / PgUp减少 / 增加 10 个 step
Home跳到 min
End跳到 max

API

Prop类型默认值说明
modelValue (Vue) / value (React)number0当前值
minnumber0最小值
maxnumber100最大值
stepnumber1步进
size'sm' | 'md' | 'lg''md'滑块/轨道粗细
tone'primary' | 'success' | 'warning' | 'danger''primary'填充色
showValuebooleanfalsethumb 上显示当前值气泡
ticksbooleanfalse渲染刻度(步数过多自动忽略)
disabledbooleanfalse禁用

Events

事件载荷说明
change / onChange(value, meta)值变化时触发;meta.sourcepointerkeyboard
changeEnd / onChangeEnd(value, meta)指针松开或键盘提交后触发,适合保存最终值

反馈与讨论

Slider 滑块 的讨论

0
0 / 600
一键发送
正在加载评论...