Skip to content

ScaleSlider 刻度尺

刻度尺滑动选值器,通过滚动刻度尺来选择数值。

引入

组件位置

/feeder/pages/component/scaleSlider/index

app.jsonindex.json 中引入组件:

json
"usingComponents": {
  "scaleSlider": "/feeder/pages/component/scaleSlider/index"
}

代码演示

基础用法

xml
<scaleSlider 
  value="{{ 5 }}" 
  upper="{{ 10 }}" 
  lower="{{ 0 }}" 
  step="{{ 0.1 }}"
  scale="{{ 10 }}"
  bind:valueChange="onChange"
/>

自定义单位和步长

xml
<scaleSlider 
  value="{{ 50 }}" 
  upper="{{ 100 }}" 
  lower="{{ 0 }}" 
  step="{{ 1 }}"
  unit="%"
  scale="{{ 5 }}"
  digit="{{ 0 }}"
  bind:valueChange="onChange"
/>

自定义气泡大小

xml
<scaleSlider 
  value="{{ 60 }}" 
  upper="{{ 150 }}" 
  lower="{{ 30 }}" 
  step="{{ 0.1 }}"
  unit="kg"
  bubbleSize="large"
  bind:valueChange="onChange"
/>

API

Props

参数说明类型默认值
value当前选中的值number0
upper最大值(上限)number100
lower最小值(下限)number0
step步进值(单位长度所代表的数值)number1
scale大刻度间距(多少个步进显示一个大刻度及标签)number5
unit单位符号string-
digit小数位数(显示的值保留的小数位数)number0
scroll是否可以滑动booleantrue
bubbleSize气泡大小stringnormal

bubbleSize 选项:

  • normal - 普通大小
  • large - 较大尺寸

Events

事件名说明回调参数
valueChange值改变时触发value: string 字符串格式的数值

使用示例

xml
<view>
  <text>体重: {{weight}}</text>
  <scaleSlider 
    value="{{ weight }}" 
    upper="{{ 150 }}" 
    lower="{{ 30 }}" 
    step="{{ 0.1 }}"
    digit="{{ 1 }}"
    unit="kg"
    bind:valueChange="onWeightChange"
  />
</view>
typescript
Page({
  data: {
    weight: 60
  },

  onWeightChange(e: any) {
    this.setData({
      weight: e.detail
    });
  }
});

属性详解

value

  • 类型:number
  • 默认值:0
  • 说明:组件当前显示的数值,刻度尺会自动定位到该值对应的位置

upper / lower

  • 类型:number
  • 说明:设定刻度尺的范围,upper 为最大值,lower 为最小值

step

  • 类型:number
  • 默认值:1
  • 说明:刻度间隔所代表的数值。每个 10px 宽度的刻度代表 step 个单位

scale

  • 类型:number
  • 默认值:5
  • 说明:控制大刻度显示的密度。值为 5 表示每 5 个刻度显示一个大刻度及对应的数字标签

digit

  • 类型:number
  • 默认值:0
  • 说明:控制显示和回调的数值精度,即保留的小数位数

unit

  • 类型:string
  • 说明:在气泡中显示的单位符号,如 kg%cm

常见场景

体重选择器

xml
<scaleSlider 
  value="{{ weight }}" 
  upper="{{ 200 }}" 
  lower="{{ 30 }}" 
  step="{{ 0.1 }}"
  digit="{{ 1 }}"
  unit="kg"
  bind:valueChange="onWeightChange"
/>

百分比选择器

xml
<scaleSlider 
  value="{{ percent }}" 
  upper="{{ 100 }}" 
  lower="{{ 0 }}" 
  step="{{ 1 }}"
  unit="%"
  digit="{{ 0 }}"
  bind:valueChange="onPercentChange"
/>

精密值选择器

xml
<scaleSlider 
  value="{{ rate }}" 
  upper="{{ 10 }}" 
  lower="{{ 0 }}" 
  step="{{ 0.1 }}"
  digit="{{ 1 }}"
  bind:valueChange="onRateChange"
/>