Slider 滑块

介绍

滑动输入条,用于在给定的范围内选择一个值。

引入

app.jsonindex.json中引入组件,详细介绍见快速上手

  1. "usingComponents": {
  2. "van-slider": "@vant/weapp/slider/index"
  3. }

代码演示

基本用法

  1. <van-slider value="50" bind:change="onChange" />
  1. Page({
  2. onChange(event) {
  3. wx.showToast({
  4. icon: 'none',
  5. title: `当前值:${event.detail}`,
  6. });
  7. },
  8. });

双滑块

添加 range 属性就可以开启双滑块模式,确保 value 的值是一个数组。

  1. <van-slider value="{{ 10, 50 }}" range @change="onChange" />
  1. Page({
  2. onChange(event) {
  3. wx.showToast({
  4. icon: 'none',
  5. title: `当前值:${event.detail}`,
  6. });
  7. },
  8. });

指定选择范围

  1. <van-slider min="-50" max="50" />

禁用

  1. <van-slider value="50" disabled />

指定步长

  1. <van-slider value="50" step="10" />

自定义样式

  1. <van-slider value="50" bar-height="4px" active-color="#ee0a24" />

自定义按钮

  1. <van-slider value="{{ currentValue }}" use-button-slot bind:drag="onDrag">
  2. <view class="custom-button" slot="button">{{ currentValue }}/100</view>
  3. </van-slider>
  1. Page({
  2. data: {
  3. currentValue: 50,
  4. },
  5. onDrag(event) {
  6. this.setData({
  7. currentValue: event.detail.value,
  8. });
  9. },
  10. });

垂直方向

设置 vertical 属性后,滑块会垂直展示,且高度为 100% 父元素高度。

  1. <view style="height: 150px;">
  2. <van-slider value="50" vertical bind:change="onChange" />
  3. <van-slider
  4. value="{{ [10, 50] }}"
  5. range
  6. vertical
  7. style="margin-left: 100px;"
  8. bind:change="onChange"
  9. />
  10. </view>
  1. Page({
  2. onChange(event) {
  3. wx.showToast({
  4. icon: 'none',
  5. title: `当前值:${event.detail}`,
  6. });
  7. },
  8. });

API

Props

参数说明类型默认值
value当前进度百分比,在双滑块模式下为数组格式number | number[]0
disabled是否禁用滑块booleanfalse
max最大值number100
min最小值number0
step步长number1
bar-height进度条高度,默认单位为 pxstring | number2px
active-color进度条激活态颜色string#1989fa
inactive-color进度条默认颜色string#e5e5e5
use-slot-button是否使用按钮插槽booleanfalse
range v1.8.4是否开启双滑块模式booleanfalse
vertical v1.8.5是否垂直展示booleanfalse

Events

事件名说明参数
bind:drag拖动进度条时触发event.detail.value: 当前进度
bind:change进度值改变后触发event.detail: 当前进度
bind:drag-start开始拖动时触发-
bind:drag-end结束拖动时触发-

外部样式类

类名说明
custom-class根节点样式类

Slots

名称说明参数
button自定义滑块按钮{ value: number }
left-button v1.8.4自定义左侧滑块按钮(双滑块模式下){ value: number }
right-button v1.8.4自定义右侧滑块按钮 (双滑块模式下){ value: number }

Slider 滑块 - 图1