ionic Range

Ionic Range(滑块)组件中文详细讲解

<ion-range> 是 Ionic 框架中非常常用的滑块组件,用于让用户通过拖动滑块来选择一个数值或一个数值范围,常用于音量、亮度、价格区间、评分等场景。

1. 基本单滑块用法

<ion-item>
  <ion-label>音量</ion-label>
  <ion-range min="0" max="100" value="60"></ion-range>
</ion-item>

2. 双滑块(选择范围,比如价格区间)

<ion-item>
  <ion-label>价格范围</ion-label>
  <ion-range 
    dualKnobs="true"
    min="0" 
    max="10000" 
    step="100"
    pin="true"
    [(ngModel)]="price">
  </ion-range>
</ion-item>

<!-- 显示当前选择的范围 -->
<ion-item>
  <ion-label>¥{{ price.lower }} - ¥{{ price.upper }}</ion-label>
</ion-item>

组件代码(Angular 示例):

export class MyPage {
  price = {
    lower: 800,
    upper: 5000
  };
}

3. 常用属性一览(中英对照)

属性类型说明示例
minnumber最小值min=”0″
maxnumber最大值max=”100″
stepnumber每次滑动增加/减少的步长step=”5″
valuenumber 或 object当前值(单滑块:数字;双滑块:{lower,upper})value=”50″
dualKnobsboolean是否开启双滑块(范围选择)dualKnobs=”true”
pinboolean是否在滑块上方显示数值气泡pin=”true”
snapsboolean是否让滑块“吸附”到刻度点snaps=”true”
ticksboolean是否显示轨道上的刻度线ticks=”true”
colorstring颜色(primary、secondary、danger 等)color=”danger”
disabledboolean是否禁用disabled=”true”
debouncenumber输入停止后延迟多少毫秒才触发 ionChangedebounce=”300″

4. 常用事件

<ion-range 
  (ionChange)="rangeChanged($event)"
  (ionKnobMoveStart)="startDrag()"
  (ionKnobMoveEnd)="endDrag()">
</ion-range>
rangeChanged(event: any) {
  console.log('当前值:', event.detail.value);
  // 单滑块:数字
  // 双滑块:{ lower: 100, upper: 800 }
}

startDrag() {
  console.log('开始拖动');
}

endDrag() {
  console.log('结束拖动,可在这里发请求保存');
}

5. 自定义气泡显示内容(pinFormatter)

想让气泡显示“¥500”而不是单纯的“500”:

<ion-range pin="true" [pinFormatter]="formatPrice"></ion-range>
formatPrice(value: number) {
  return `¥${value}`;
}

6. 带刻度 + 吸附的完整例子(常用于评分)

<ion-item>
  <ion-label>满意度评分</ion-label>
  <ion-range 
    min="1" 
    max="5" 
    step="1"
    snaps="true"
    ticks="true"
    pin="true"
    color="warning"
    [(ngModel)]="rating">
  </ion-range>
</ion-item>

7. React / Vue 用法简要示例

React

<IonRange 
  min={0} 
  max={100} 
  value={volume}
  onIonChange={e => setVolume(e.detail.value as number)} />

Vue

<ion-range :value="score" @ionChange="score = $event.target.value" />

官方文档(中文)

https://ionicframework.com/docs/api/range

小贴士

  • Ionic 7+ 自动支持暗黑模式,Range 会自动变色
  • 支持键盘操作(左右方向键)和屏幕阅读器,无障碍做得很好
  • 双滑块时,建议配合 pin=”true” 使用,用户体验更好

需要我给你打包一个完整可运行的 Angular / React / Vue 项目模板吗?直接说框架就行~

文章已创建 2588

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部