Skip to content

LimeSlider 滑块组件

一个功能丰富的滑块组件,用于在给定的范围内选择一个值或一个范围。支持单滑块、双滑块、垂直方向、刻度标记等多种配置,可用于音量调节、价格区间选择、温度设置等多种场景。组件提供了丰富的自定义选项,可以满足各种复杂的界面设计需求。

插件依赖:lime-sharedlime-style

文档链接

📚 组件详细文档请访问以下站点:

安装方法

  1. 在uni-app插件市场入口 中搜索并导入lime-slider
  2. 导入后可能需要重新编译项目
  3. 在页面中使用l-slider组件

代码演示

基础使用

html
<l-slider v-model="value" @change="onChange" />
js
const value = ref(50);
const onChange = (value: number) => {
	console.log('当前值:' + value)
};

双滑块

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

html
<van-slider v-model="value" :range="true" @change="onChange" />
js
// 双滑块模式时,值必须是数组
const value = ref([10, 50]);
const onChange = (value: number[]) => {
	console.log('当前值:' + value)
};

指定范围

通过设置 min 属性和max达到指定范围。

html
<l-slider v-model="value" :min="-50" :max="50"/>

禁用

通过设置 disabled属性禁用。

html
<l-slider v-model="value4" :disabled="true" />

指定步长

通过设置 step 属性值指定步长。

html
<l-slider v-model="value" :step="10" />

自定义样式

通过 thumb-size 属性设置按钮尺寸,通过rail-size设置进度条高度,通过track-color可设置进度条激活态颜色。

html
<l-slider v-model="value" thumb-size="30px" rail-size="4px" track-color="#34c471" />

自定义按钮

通过 startThumb 插槽自定义按钮。

html
<l-slider v-model="value" rail-size="4px" track-color="#ffb400">
	<template #startThumb>
		<text class="custom-thumb">{{ value }}</text>
	</template>
</l-slider>

垂直方向

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

html
<l-slider v-model="value" :range="true" :vertical="true"/>

反向滑块

设置reverse属性,使滑块反向移动。

html
<l-slider v-model="value" reverse></l-slider>

禁止越界

设置noCross属性,在双滑块模式下禁止两个滑块交叉。

html
<l-slider v-model="rangeValue" range noCross></l-slider>

快速预览

导入插件后,可以直接使用以下标签查看演示效果:

html
<!-- 代码位于 uni_modules/lime-slider/components/lime-slider -->
<lime-slider />

插件标签说明

标签名说明
l-slider组件标签
lime-slider演示标签

Vue2使用说明

main.js中添加以下代码:

js
// vue2项目中使用
import Vue from 'vue'
import VueCompositionAPI from '@vue/composition-api'
Vue.use(VueCompositionAPI)

详细配置请参考官方文档:Vue Composition API

API文档

Props 属性说明

属性名说明类型默认值
modelValue当前值,可以使用 v-model 双向绑定number | number[]-
value当前值(兼容写法)number | number[]-
min最小值number0
max最大值number100
step步长number1
range是否开启双滑块模式booleanfalse
disabled是否禁用滑块booleanfalse
reverse是否反向移动booleanfalse
readonly是否为只读状态booleanfalse
noCross是否禁止双滑块交叉booleanfalse
vertical是否垂直展示booleanfalse
thumbSize滑块大小string-
thumbColor滑块颜色string-
thumbBorderColor滑块边框颜色string-
thumbRadius滑块圆角string-
railColor轨道颜色string-
railRadius轨道圆角string-
railSize轨道大小string-
trackColor已选择部分的轨道颜色string-

Events 事件

事件名说明回调参数
change值变化时触发value: number | number[]
dragStart开始拖动时触发value: number | number[]
dragEnd结束拖动时触发value: number | number[]

Slots 插槽

名称说明
button自定义滑块按钮

主题定制

组件提供了以下CSS变量,可用于自定义样式:

变量名称默认值描述
--l-slider-rail-size4px轨道大小
--l-slider-rail-colorrgba(0, 0, 0, 0.04)轨道颜色
--l-slider-track-color#1677ff已选择部分的轨道颜色
--l-slider-disabled-color$primary-color-3禁用状态颜色
--l-slider-dot-size20px滑块大小
--l-slider-dot-colorwhite滑块颜色
--l-slider-dot-radius50%滑块圆角

支持与赞赏

如果你觉得本插件解决了你的问题,可以考虑支持作者:

支付宝赞助微信赞助

源代码

组件源码