Slider 滑块
滑动输入器,用于在给定的范围内选择一个值。
代码示例
<template>
<zk-theme type="page" :padding="30" showBack navbarTitle="skeleton骨架屏">
<!-- 基础用法 -->
<zk-theme type="card" :padding="30" :radius="16" margin="0 0 30rpx 0">
<zk-text type="secondary" :size="28" weight="bold" margin="0 0 20rpx 0" text="基础用法" align="center" />
<zk-slider v-model="value1" :show-value="true" @change="onChange" />
</zk-theme>
<!-- 自定义样式 -->
<zk-theme type="card" :padding="30" :radius="16" margin="0 0 30rpx 0">
<zk-text type="secondary" :size="28" weight="bold" margin="0 0 20rpx 0" text="自定义样式" align="center" />
<zk-slider
v-model="value2"
active-color="#FF5722"
background-color="#E5E6EB"
:block-size="40"
block-color="#FF5722"
:show-value="true"
/>
</zk-theme>
<!-- 小型滑块 -->
<zk-theme type="card" :padding="30" :radius="16" margin="0 0 30rpx 0">
<zk-text type="secondary" :size="28" weight="bold" margin="0 0 20rpx 0" text="小型滑块" align="center" />
<zk-slider v-model="value3" :block-size="20" :show-value="true" />
</zk-theme>
<!-- 设置步长 -->
<zk-theme type="card" :padding="30" :radius="16" margin="0 0 30rpx 0">
<zk-text type="secondary" :size="28" weight="bold" margin="0 0 20rpx 0" text="设置步长" align="center" />
<zk-slider v-model="value4" :step="10" :show-value="true" />
</zk-theme>
<!-- 设置范围 -->
<zk-theme type="card" :padding="30" :radius="16" margin="0 0 30rpx 0">
<zk-text type="secondary" :size="28" weight="bold" margin="0 0 20rpx 0" text="设置范围" align="center" />
<zk-slider v-model="value5" :min="-50" :max="50" :show-value="true" />
</zk-theme>
<!-- 禁用状态 -->
<zk-theme type="card" :padding="30" :radius="16" margin="0 0 30rpx 0">
<zk-text type="secondary" :size="28" weight="bold" margin="0 0 20rpx 0" text="禁用状态" align="center" />
<zk-slider v-model="value6" disabled :show-value="true" />
</zk-theme>
<!-- 实时数值变化 -->
<zk-theme type="card" :padding="30" :radius="16" margin="0 0 30rpx 0">
<zk-text type="secondary" :size="28" weight="bold" margin="0 0 20rpx 0" text="实时数值变化" align="center" />
<zk-slider v-model="value7" :show-value="true" @changing="onChanging" />
<view class="demo-value">
<zk-text type="primary" :size="26" :text="`当前值:${value7}`" margin="16rpx 0 0 0" />
</view>
</zk-theme>
</zk-theme>
</template>
<script>
export default {
data() {
return {
value1: 50,
value2: 30,
value3: 40,
value4: 50,
value5: 0,
value6: 60,
value7: 25
}
},
methods: {
onChange(value) {
console.log('change事件触发:', value)
},
onChanging(value) {
console.log('changing事件触发:', value)
}
}
}
</script>
<style lang="scss">
/* #ifdef APP-NVUE */
.demo-value {
flex-direction: row;
}
/* #endif */
</style>
API
Props 属性
参数 |
说明 |
类型 |
默认值 |
value / v-model |
当前值 |
number / string |
0 |
min |
最小值 |
number |
0 |
max |
最大值 |
number |
100 |
step |
步长 |
number |
1 |
disabled |
是否禁用 |
boolean |
false |
show-value |
是否显示当前值 |
boolean |
false |
active-color |
进度条激活态颜色 |
string |
#165DFF |
background-color |
进度条背景色 |
string |
#E5E6EB |
block-size |
滑块大小,单位rpx |
number |
28 |
block-color |
滑块颜色 |
string |
#FFFFFF |
Events 事件
事件名 |
说明 |
回调参数 |
input |
值改变时实时触发(支持v-model) |
value: number |
change |
滑动结束时触发 |
value: number |
changing |
滑动过程中触发 |
value: number |
主题定制
组件会优先使用传入的自定义颜色属性,如未传入则会使用全局主题配置中的以下变量:
变量名 |
说明 |
默认值 |
primary |
滑块激活态颜色 |
#2979ff |
borderBase |
滑块背景色 |
#dcdfe6 |
white |
滑块颜色 |
#ffffff |
textPrimary |
数值文本颜色 |
#303133 |