Slider 滑块
在固定区间内拖动选择数值。
基础用法
拖动过程中会显示当前数值。
通过 v-model 绑定数值以设置初始值。
离散值
支持按步进离散取值。
使用 step 设置步长;show-stops 显示刻度断点。
带输入框
通过输入框精确修改数值。
设置 show-input 在右侧显示数字输入框。
尺寸
气泡位置
可自定义 Tooltip 展示位置。
范围选择
支持选择区间。
设置 range 开启区间模式,绑定值为包含两个端点的数组。
竖直模式
设置 vertical 为 true 启用竖直模式,此时必须设置 height。
显示标记
通过 marks 在滑轨上显示刻度标记。
限制在标记上
设置 step="mark" 使取值只能落在 marks 上。
滑块 API
滑块 属性
| 名称 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| model-value / v-model | 绑定值 | number / array | 0 |
| min | 最小值 | number | 0 |
| max | 最大值 | number | 100 |
| disabled | 是否禁用 | boolean | false |
| step | 步长;可为数字或 'mark' 以限制只能取标记点;为 '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 | enum | default |
| show-stops | 是否显示断点 | boolean | false |
| show-tooltip | 是否显示数值气泡 | boolean | true |
| format-tooltip | 自定义气泡内容格式化函数 | Function | — |
| range | 是否区间选择 | boolean | false |
| vertical | 是否竖直模式 | boolean | false |
| height | 滑轨高度;竖直模式下必填 | string | — |
| aria-label a11y | 原生 aria-label | string | — |
| range-start-label | 区间模式下起点滑块的读屏标签 | string | — |
| range-end-label | 区间模式下终点滑块的读屏标签 | string | — |
| format-value-text | 格式化读屏 aria-valuenow 的函数 | Function | — |
| tooltip-class | Tooltip 自定义 class | string | — |
| placement | Tooltip 方位 | enum | top |
| marks | 刻度标记;键须为 number 且落在 [min, max] 闭区间内,值可为样式或自定义标签 | object | — |
| validate-event | 是否触发表单校验 | boolean | true |
| persistent | Tooltip 失活且 persistent 为 false 时销毁 Tooltip;show-tooltip 为 false 时 persistent 恒为 false | boolean | true |
滑块 事件
| 事件名 | 说明 | 类型 |
|---|---|---|
| change | 值变化时触发(拖拽中仅在松开鼠标时触发) | Function |
| input | 值变化时触发(拖拽过程中实时触发) | Function |
类型声明
展开类型声明
ts
type SliderMarks = Record<number, string | { style: CSSProperties; label: any }>
type Arrayable<T> = T | T[]