更新记录

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"
/>

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

暂无用户评论。