landluck 5e87650fe2
fix(slider): fix slider can't swipe (#5079)
Co-authored-by: liuhaihonggia <liuhaihong@youzan.com>
2022-10-31 13:05:36 +08:00
..
2021-12-21 09:51:43 +08:00
2021-12-21 09:51:43 +08:00

Slider 滑块

介绍

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

引入

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

"usingComponents": {
  "van-slider": "@vant/weapp/slider/index"
}

代码演示

基本用法

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

双滑块

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

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

指定选择范围

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

禁用

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

指定步长

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

自定义样式

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

自定义按钮

<van-slider value="{{ currentValue }}" use-button-slot bind:drag="onDrag">
  <view class="custom-button" slot="button">{{ currentValue }}/100</view>
</van-slider>
Page({
  data: {
    currentValue: 50,
  },

  onDrag(event) {
    this.setData({
      currentValue: event.detail.value,
    });
  },
});

垂直方向

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

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

API

Props

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

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 }