Slider 滑块

概述

滑动输入器,用于在数值区间/自定义区间内进行选择,支持连续或离散值。

代码示例

Slider 滑块 - 图1

基础用法

滑块的基本用法,可以使用 v-model 双向绑定数据。

通过设置属性 range 开启双滑块,通过设置属性 disabled 禁用滑块。

注意,单滑块时,value 格式为数字,当开启双滑块时,value 为长度是2的数组,且每项为数字。

  1. <template>
  2. <Slider v-model="value1"></Slider>
  3. <Slider v-model="value2" range></Slider>
  4. <Slider v-model="value3" range disabled></Slider>
  5. </template>
  6. <script>
  7. export default {
  8. data () {
  9. return {
  10. value1: 25,
  11. value2: [20, 50],
  12. value3: [20, 50]
  13. }
  14. }
  15. }
  16. </script>

Slider 滑块 - 图2

离散值

通过设置属性 step 可以控制每次滑动的间隔。

  1. <template>
  2. <Slider v-model="value4" :step="10"></Slider>
  3. <Slider v-model="value5" :step="10" range></Slider>
  4. </template>
  5. <script>
  6. export default {
  7. data () {
  8. return {
  9. value4: 30,
  10. value5: [20, 50]
  11. }
  12. }
  13. }
  14. </script>

Slider 滑块 - 图3

显示间断点

通过设置属性 show-stops 可以显示间断点,建议在 step 间隔不密集时使用。

  1. <template>
  2. <Slider v-model="value6" :step="10" show-stops></Slider>
  3. <Slider v-model="value7" :step="10" show-stops range></Slider>
  4. </template>
  5. <script>
  6. export default {
  7. data () {
  8. return {
  9. value6: 30,
  10. value7: [20, 50]
  11. }
  12. }
  13. }
  14. </script>

Slider 滑块 - 图4

带有输入框

通过设置属性 show-input 可以显示数字输入框,配合使用,仅在单滑块模式下有效。

  1. <template>
  2. <Slider v-model="value8" show-input></Slider>
  3. </template>
  4. <script>
  5. export default {
  6. data () {
  7. return {
  8. value8: 25
  9. }
  10. }
  11. }
  12. </script>

Slider 滑块 - 图5

自定义提示

Slider 会把当前值传给 tip-format,并在 Tooltip 中显示 tip-format 的返回值,若为 null,则隐藏 Tooltip。

  1. <template>
  2. <Slider v-model="value9" :tip-format="format"></Slider>
  3. <Slider v-model="value10" :tip-format="hideFormat"></Slider>
  4. </template>
  5. <script>
  6. export default {
  7. data () {
  8. return {
  9. value9: 25,
  10. value10: 25
  11. }
  12. },
  13. methods: {
  14. format (val) {
  15. return 'Progress: ' + val + '%';
  16. },
  17. hideFormat () {
  18. return null;
  19. }
  20. }
  21. }
  22. </script>

Slider 滑块 - 图6

展示标记

4.0.0 设置属性 marks 可以显示标记。

标记的 key 取值应该在闭合区间 [min, max] 内。

标记点也可以通过 style 和 label 自定义样式。

  1. <template>
  2. <Slider v-model="value11" range :marks="marks"></Slider>
  3. </template>
  4. <script>
  5. export default {
  6. data () {
  7. return {
  8. value11: [25, 65],
  9. marks: {
  10. 0: '0°C',
  11. 12: '12°C',
  12. 32: '32°C',
  13. 55: {
  14. style: {
  15. color: '#ff0000'
  16. },
  17. label: this.$createElement('strong', '55°C')
  18. }
  19. }
  20. }
  21. }
  22. }
  23. </script>

API

Slider props

属性说明类型默认值
value滑块选定的值,可以使用 v-model 双向绑定数据。普通模式下,数据格式为数字,在双滑块模式下,数据格式为长度是2的数组,且每项都为数字Number | Array0
min最小值Number0
max最大值Number100
step步长,取值建议能被(max - min)整除Number1
disabled是否禁用滑块Booleanfalse
range是否开启双滑块模式Booleanfalse
show-input是否显示数字输入框,仅在单滑块模式下有效Booleanfalse
show-stops是否显示间断点,建议在 step 不密集时使用Booleanfalse
show-tip提示的显示控制,可选值为 hover(悬停,默认)、always(总是可见)、never(不可见)Stringhover
tip-formatSlider 会把当前值传给 tip-format,并在 Tooltip 中显示 tip-format 的返回值,若为 null,则隐藏 TooltipFunctionvalue
input-size数字输入框的尺寸,可选值为largesmalldefault或者不填,仅在开启 show-input 时有效Stringdefault
active-change 3.4.0同 InputNumber 的 active-changeBooleantrue
marks 4.0.0标记, key 的类型必须为 number 且取值在闭区间 [min, max] 内,每个标记可以单独设置样式Object-

Slider events

事件名说明返回值
on-change在松开滑动时触发,返回当前的选值,在滑动过程中不会触发value
on-input滑动条数据变化时触发,返回当前的选值,在滑动过程中实时触发value