# Slider 滑块
滑动输入条,用于在给定的范围内选择一个值。
# 引入
import PressSlider from 'press-ui/press-slider/press-slider';
export default {
components: {
PressSlider,
}
}
# 代码演示
# 基本用法
<press-slider value="50" @change="onChange" />
export default{
onChange(value) {
this.$toast(`当前值:${value}`);
},
};
# 双滑块
添加 range
属性就可以开启双滑块模式,确保 value
的值是一个数组。
<press-slider :value="[10, 50]" range @change="onChange" />
# 指定选择范围
<press-slider min="-50" max="50" />
# 禁用
<press-slider value="50" disabled />
# 指定步长
<press-slider value="50" step="10" />
# 自定义样式
<press-slider value="50" bar-height="4px" active-color="#ee0a24" />
# 自定义按钮
<press-slider :value="currentValue" use-button-slot @drag="onDrag">
<div class="custom-button" slot="button">{{ currentValue }}</div>
</press-slider>
export default {
data() {
return {
currentValue: 50,
}
},
onDrag(value) {
this.currentValue = value;
},
};
# 垂直方向
设置 vertical
属性后,滑块会垂直展示,且高度为 100% 父元素高度。
<div style="height: 150px;">
<press-slider value="50" vertical @change="onChange" />
<press-slider
:value="[10, 50]"
range
vertical
style="margin-left: 100px;"
@change="onChange"
/>
</div>
# 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 | 是否开启双滑块模式 | boolean | false |
vertical | 是否垂直展示 | boolean | false |
# Events
事件名 | 说明 | 参数 |
---|---|---|
drag | 拖动进度条时触发 | event.detail.value: 当前进度 |
change | 进度值改变后触发 | event.detail: 当前进度 |
drag-start | 开始拖动时触发 | - |
drag-end | 结束拖动时触发 | - |
# Slots
名称 | 说明 | 参数 |
---|---|---|
button | 自定义滑块按钮 | { value: number } |
left-button | 自定义左侧滑块按钮(双滑块模式下) | { value: number } |
right-button | 自定义右侧滑块按钮 (双滑块模式下) | { value: number } |