更新记录
1.0.0(2025-12-23)
下载此版本
平台兼容性
uni-app(4.87)
| Vue2 |
Vue3 |
Chrome |
Safari |
app-vue |
app-nvue |
Android |
iOS |
鸿蒙 |
| √ |
√ |
√ |
- |
√ |
√ |
√ |
- |
- |
| 微信小程序 |
支付宝小程序 |
抖音小程序 |
百度小程序 |
快手小程序 |
京东小程序 |
鸿蒙元服务 |
QQ小程序 |
飞书小程序 |
快应用-华为 |
快应用-联盟 |
| √ |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
lf-slide-rule 刻度尺组件
高性能可滑动刻度尺 uni-app 组件,适用于选择身高、体重、温度、速度等数值场景。
平台兼容性
| Vue2 |
Vue3 |
App-vue |
App-nvue |
H5 |
微信小程序 |
支付宝小程序 |
| ✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
功能特性
- 🎯 高性能 - Canvas 渲染 + 节流绘制,大范围数值也流畅
- 🌊 惯性滑动 - 物理模拟的惯性效果
- 💫 边界回弹 - 滑动到边界时弹性回弹
- 🧲 刻度吸附 - 停止滑动后自动对齐
- 🎨 自定义指示器 - 4 种内置样式 + 插槽自定义
- 📱 多平台 - Vue2/Vue3、App、H5、小程序
安装使用
将 components/lf-slide-rule 文件夹复制到你的项目 components 目录下即可。
基础用法
<template>
<lf-slide-rule v-model:value="height" :min="100" :max="220" unit="cm" />
</template>
<script>
import lfSlideRule from "@/components/lf-slide-rule/lf-slide-rule.vue";
export default {
components: { lfSlideRule },
data() {
return { height: 170 };
},
};
</script>
Props 属性
基础属性
| 属性名 |
类型 |
默认值 |
说明 |
| value / v-model:value |
Number |
50 |
当前值 |
| min |
Number |
0 |
最小值 |
| max |
Number |
100 |
最大值 |
| step |
Number |
1 |
步进值 |
| majorStep |
Number |
10 |
大刻度间隔 |
| height |
Number |
140 |
组件高度(px) |
| disabled |
Boolean |
false |
是否禁用 |
刻度属性
| 属性名 |
类型 |
默认值 |
说明 |
| scaleWidth |
Number |
8 |
刻度间距(px) |
| minorScaleHeight |
Number |
18 |
小刻度高度(px) |
| majorScaleHeight |
Number |
34 |
大刻度高度(px) |
| scaleColor |
String |
#E0E0E0 |
小刻度颜色 |
| majorScaleColor |
String |
#9E9E9E |
大刻度颜色 |
| textColor |
String |
#666666 |
刻度文字颜色 |
| textFontSize |
Number |
11 |
刻度文字大小(px) |
| backgroundColor |
String |
#FFFFFF |
背景颜色 |
值显示属性
| 属性名 |
类型 |
默认值 |
说明 |
| showValue |
Boolean |
true |
是否显示当前值 |
| valueColor |
String |
#333333 |
当前值颜色 |
| valueFontSize |
Number |
42 |
当前值字号(px) |
| unit |
String |
'' |
单位 |
| unitColor |
String |
#999999 |
单位颜色 |
| decimalPlaces |
Number |
0 |
小数位数 |
指示器属性
| 属性名 |
类型 |
默认值 |
说明 |
| indicatorColor |
String |
#FF5722 |
指示器颜色 |
| indicatorStyle |
String |
circle |
指示器样式: circle / triangle / diamond / line |
| indicatorSize |
Number |
20 |
指示器大小(px) |
| indicatorLineWidth |
Number |
3 |
指示器线条宽度(px) |
| indicatorGlow |
Boolean |
true |
是否显示发光效果 |
Slots 插槽
| 插槽名 |
说明 |
| indicator |
自定义指示器,完全替换默认指示器 |
自定义指示器示例
<lf-slide-rule v-model:value="value">
<template #indicator>
<view class="my-indicator">
<image src="/static/indicator.png" class="my-indicator-icon" />
<view class="my-indicator-line"></view>
</view>
</template>
</lf-slide-rule>
Events 事件
| 事件名 |
说明 |
回调参数 |
| change |
值改变时触发 |
value: Number |
| scroll |
滚动过程中触发 |
value: Number |
| scrollEnd |
滚动结束时触发 |
value: Number |
| update:value |
v-model 更新事件 |
value: Number |
Methods 方法
| 方法名 |
说明 |
参数 |
| setValue(value, animated) |
设置值 |
value: Number, animated: Boolean |
| refresh() |
刷新组件 |
- |
使用示例
圆形指示器(默认)
<lf-slide-rule
v-model:value="height"
:min="100"
:max="220"
unit="cm"
indicatorStyle="circle"
indicatorColor="#EC407A"
/>
三角形指示器
<lf-slide-rule
v-model:value="weight"
:min="30"
:max="150"
:step="0.5"
:decimalPlaces="1"
unit="kg"
indicatorStyle="triangle"
indicatorColor="#26A69A"
/>
菱形指示器 + 深色主题
<lf-slide-rule
v-model:value="temperature"
:min="-20"
:max="50"
unit="°C"
indicatorStyle="diamond"
indicatorColor="#FF9800"
scaleColor="#555"
textColor="#AAA"
valueColor="#FF9800"
backgroundColor="#1E1E1E"
/>
线条指示器
<lf-slide-rule
v-model:value="duration"
:min="0"
:max="120"
:step="5"
unit="min"
indicatorStyle="line"
:indicatorLineWidth="4"
indicatorColor="#7C4DFF"
/>