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