Skip to content

Slider 滑块

通过拖动滑块在一个固定区间内进行选择。

基础用法

最基本的滑块用法。

默认
自定义初始值
禁用状态
基础用法

带有输入框

配合 show-input 属性,可以实现数值的精确输入。

带输入框
当前数值: 15
带有输入框

垂直模式

配置 vertical 属性为 true 启用垂直模式。在垂直模式下,必须设置 height 属性。

单选: 30
范围: [ 20, 50 ]
垂直模式

展示标记

使用 marks 属性标记 Slider 的刻度。

滑块标记
0°C
37°C
50%
100°C
当前数值: 37
展示标记

自定义插槽

通过 thumb 插槽自定义滑块按钮,通过 mark 插槽自定义标记文本。以下是示例代码:

插槽允许您完全自定义滑块的外观,例如自定义滑块手柄 (Thumb) 或刻度标记 (Mark)。

自定义按钮
45
自定义插槽

在 Nuxt 中使用

Slider 组件完全支持 Nuxt 3/4 的 SSR 渲染。在 Nuxt 项目中使用时,组件会自动导入。

Nuxt 中使用

SSR 注意事项

  • ✅ 基础滑动选择、范围选择完全支持
  • ✅ 步长(step)、标记(marks)在服务器端正确渲染
  • ✅ 垂直模式布局在 SSR 中保持一致
  • ✅ 插槽(thumb/mark)支持 SSR 渲染
  • ⚠️ 拖拽交互、Tooltip 提示仅在客户端激活后可用

SSR 安全性

Slider 组件针对 SSR 优化的样式系统,确保了滑块导轨和填充条在首屏加载时就具备正确的视觉效果,消除了 Hydration 时的视觉抖动。

API

Props

属性名说明类型默认值
model-value / v-model绑定值number | [number, number]0
min最小值number0
max最大值number100
step步长number1
size滑块的尺寸'large' | 'default' | 'small''default'
show-input是否显示输入框,仅在非范围选择时有效booleanfalse
show-input-controls在显示输入框时,是否显示控制按钮booleantrue
input-size输入框的大小'large' | 'default' | 'small''default'
show-stops是否显示间断点booleanfalse
show-tooltip是否显示提示booleantrue
format-tooltip格式化提示文字(val: number) => string | number
disabled是否禁用booleanfalse
range是否为范围选择booleanfalse
vertical是否垂直模式booleanfalse
height垂直模式下的高度string
label屏幕阅读器标签string
debounce输入时的去抖延迟,单位为毫秒number300
tooltip-class提示的自定义类名string
placement提示出现的位置string'top'
marks标记, key 的类型必须为 number ,且在 [min, max] 范围内object
validate-event改变滑块值时是否触发表单的校验booleantrue
range-start-label自定义范围选择时的最小值属性名,用于 aria-labelstring
range-end-label自定义范围选择时的最大值属性名,用于 aria-labelstring
button-class自定义按钮类名string
color自定义主题颜色string

Events

事件名说明回调参数
update:modelValue绑定值改变时触发(val: number | [number, number]) => void
change值改变时触发(仅在松开鼠标或点击滑道时)(val: number | [number, number]) => void
input数据改变时触发(实时触发)(val: number | [number, number]) => void

Slots

插槽名说明参数
thumb自定义滑块手柄{ value: number }
mark自定义刻度文本{ mark: any }
default组件底部预留插槽

主题变量

所有颜色变量已与全局主题系统对接,自动支持暗黑模式:

变量名说明默认值
--yh-slider-main-color主题色(滑道填充、手柄边框)var(--yh-color-primary)
--yh-slider-bg-color滑道背景颜色var(--yh-border-color-light)
--yh-slider-hover-bg-color悬停时滑道背景颜色var(--yh-border-color-dark)
--yh-slider-button-size手柄按钮尺寸16px
--yh-slider-button-border手柄按钮边框宽度2px
--yh-slider-runway-height滑道高度(横向为高,纵向为宽)6px
--yh-slider-height组件整体高度(容器高度)32px
--yh-slider-tooltip-bgTooltip 背景色var(--yh-bg-color-overlay-dark)
--yh-slider-tooltip-textTooltip 文字颜色var(--yh-text-color-primary-dark)
--yh-slider-mark-text-color刻度文字颜色var(--yh-text-color-secondary)

Released under the MIT License.