Skip to content

Range 区间选择器

介绍

滑动输入条,用于在给定的范围内选择一个值。

基础用法

html
<template>
  <nut-range v-model="value" @change="onChange"></nut-range>
</template>
ts
import type { RangeValue } from "nutui-uniapp";

const value = ref(40);

function onChange(val: RangeValue) {
  console.log("change", val);
}

双滑块

html
<template>
  <nut-range v-model="value" range @change="onChange"></nut-range>
</template>
ts
import type { RangeValue } from "nutui-uniapp";

const value = ref([20, 80]);

function onChange(val: RangeValue) {
  console.log("change", val);
}

指定范围

html
<template>
  <nut-range
    v-model="value"
    :min="-10"
    :max="10"
    @change="onChange"
  ></nut-range>
</template>

设置步长

html
<template>
  <nut-range
    v-model="value"
    :step="5"
    @change="onChange"
  ></nut-range>
</template>

隐藏范围

html
<template>
  <nut-range
    v-model="value"
    hidden-range
    @change="onChange"
  ></nut-range>
</template>

隐藏标签

html
<template>
  <nut-range
    v-model="value"
    hidden-tag
    @change="onChange"
  ></nut-range>
</template>

禁用

html
<template>
  <nut-range
    v-model="value"
    disabled
    @change="onChange"
  ></nut-range>
</template>

自定义样式

html
<template>
  <nut-range
    v-model="value"
    inactive-color="rgb(163, 184, 255)"
    button-color="rgb(52, 96, 250)"
    active-color="linear-gradient(315deg, rgb(73, 143, 242) 0%, rgb(73, 101, 242) 100%"
    @change="onChange"
  ></nut-range>
</template>

自定义按钮

html
<template>
  <nut-range v-model="value" @change="onChange">
    <template #button>
      <text>{{ value }}</text>
    </template>
  </nut-range>
</template>

垂直方向

html
<template>
  <nut-range
    v-model="value"
    vertical
    @change="onChange"
  ></nut-range>

  <nut-range
    v-model="value"
    range
    vertical
    @change="onChange"
  ></nut-range>
</template>

刻度标记

html
<template>
  <nut-range
    v-model="value"
    :marks="marks"
    hidden-range
    @change="onChange"
  ></nut-range>

  <nut-range
    v-model="value"
    vertical
    :marks="marks"
    hidden-range
    @change="onChange"
  ></nut-range>
</template>
ts
const marks = {
  0: 0,
  20: 20,
  40: 40,
  60: 60,
  80: 80,
  100: 100
};

API

Props

参数说明类型可选值默认值
v-model当前进度百分比number / Array-0
range是否开启双滑块模式boolean-false
max最大值number / string-100
min最小值number / string-0
step步长number / string-1
disabled是否禁用滑块boolean-false
vertical是否竖向展示boolean-false
hidden-range是否隐藏范围值boolean-false
hidden-tag是否隐藏标签boolean-false
active-color进度条激活态颜色string-rgba(250, 44, 25, 1)
inactive-color进度条非激活态颜色string-rgba(255, 163, 154, 1)
button-color按钮颜色string-rgba(250, 44, 25, 1)
marks刻度标示object-{}

Events

事件名说明类型
change进度变化且结束拖动后触发(value: RangeValue) => void
drag-start开始拖动时触发() => void
drag-end结束拖动时触发() => void

Slots

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

主题定制

样式变量

组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 ConfigProvider 组件

名称默认值
--nut-range-tip-font-color#333333
--nut-range-bg-colorvar(--nut-primary-color)
--nut-range-bg-color-tick#fa958c
--nut-range-bar-bg-colorlinear-gradient(135deg, var(--nut-primary-color) 0%, var(--nut-primary-color-end) 100%)
--nut-range-bar-btn-bg-colorvar(--nut-white)
--nut-range-bar-btn-width24px
--nut-range-bar-btn-height24px
--nut-range-bar-btn-border1px solid var(--nut-primary-color)

MIT Licensed