范围滑块 Svelte 组件

范围滑块 Svelte 组件表示范围滑块组件。

范围滑块组件

包含以下组件:

范围滑块属性

属性类型默认描述
<Range> 属性
init布尔值true初始化范围滑块
数字
数组
字符串
范围滑块值,在双范围滑块情况下必须是数组
min数字
字符串
最小值
max数字
字符串
最大值
step数字
字符串
1值之间的最小步长
label布尔值false启用范围滑块旋钮周围的附加标签
布尔值false启用双范围滑块
垂直布尔值false启用垂直范围滑块
verticalReversed布尔值false使垂直范围滑块反向。 (仅当vertical:true)
draggableBar布尔值true启用后,也可以通过点击和滑动范围条来交互范围滑块(更改值)
formatLabel函数()方法必须返回格式化的范围旋钮标签文本。作为参数接收标签值
scale布尔值false启用范围滑块刻度
scaleSteps数字5刻度步数
scaleSubSteps数字0刻度子步数(每个步长将被此值除)
formatScaleLabel函数 ()方法必须返回格式化的刻度值。作为参数接收当前刻度步长值。此方法将对每个刻度步长调用。
limitKnobPosition布尔值将旋钮位置限制在范围条的大小内。默认情况下从 iOS 主题启用
禁用布尔值false定义范围滑块是否禁用
id字符串范围滑块元素 ID 属性
input布尔值false启用后,它将渲染input type="range"元素内部
inputId字符串输入元素 ID 属性
name字符串输入元素 "name" 属性

范围滑块事件

事件描述
<Range> 事件
rangeChange当范围滑块值更改时,将触发此事件
rangeChanged在滑块旋钮释放并更改值后,将触发此事件

示例

range.svelte
<script>
  import { Navbar, Page, BlockTitle, Range, List, ListItem, Icon, Block } from 'framework7-svelte';

  let priceMin = 200;
  let priceMax = 400;

  function onPriceChange(values) {
    priceMin = values[0];
    priceMax = values[1];
  }
</script>

<Page>
  <Navbar title="Range Slider" />

  <BlockTitle>Volume</BlockTitle>
  <List simpleList strongIos outlineIos>
    <ListItem>
      <div>
        <Icon ios="f7:speaker_fill" md="material:volume_mute" />
      </div>
      <div style="width: 100%; margin: 0 16px">
        <Range min={0} max={100} step={1} value={10} />
      </div>
      <div>
        <Icon ios="f7:speaker_3_fill" md="material:volume_up" />
      </div>
    </ListItem>
  </List>

  <BlockTitle>Brightness</BlockTitle>
  <List simpleList strongIos outlineIos>
    <ListItem>
      <div>
        <Icon ios="f7:sun_min" md="material:brightness_low" />
      </div>
      <div style="width: 100%; margin: 0 16px">
        <Range min={0} max={100} step={1} value={50} label={true} color="orange" />
      </div>
      <div>
        <Icon ios="f7:sun_max_fill" md="material:brightness_high" />
      </div>
    </ListItem>
  </List>

  <BlockTitle class="display-flex justify-content-space-between">
    Price Filter
    <span>${priceMin} - ${priceMax}</span>
  </BlockTitle>
  <List simpleList strongIos outlineIos>
    <ListItem>
      <div>
        <Icon ios="f7:money_dollar_circle" md="material:attach_money" />
      </div>
      <div style="width: 100%; margin: 0 16px">
        <Range
          min={0}
          max={500}
          step={1}
          value={[priceMin, priceMax]}
          label={true}
          dual={true}
          color="green"
          onRangeChange={onPriceChange}
        />
      </div>
      <div>
        <Icon ios="f7:money_dollar_circle_fill" md="material:monetization_on" />
      </div>
    </ListItem>
  </List>

  <BlockTitle>With Scale</BlockTitle>
  <Block strongIos outlineIos>
    <Range
      min={0}
      max={100}
      label={true}
      step={5}
      value={25}
      scale={true}
      scaleSteps={5}
      scaleSubSteps={4}
    />
  </Block>

  <BlockTitle>Vertical</BlockTitle>
  <Block strongIos outlineIos class="display-flex justify-content-center">
    <Range
      class="margin-right"
      style="height: 160px"
      vertical={true}
      min={0}
      max={100}
      label={true}
      step={1}
      value={25}
    />
    <Range
      class="margin-horizontal"
      style="height: 160px"
      vertical={true}
      min={0}
      max={100}
      label={true}
      step={1}
      value={50}
    />
    <Range
      class="margin-horizontal"
      style="height: 160px"
      vertical={true}
      min={0}
      max={100}
      label={true}
      step={1}
      value={75}
    />
    <Range
      class="margin-left"
      style="height: 160px"
      dual={true}
      vertical={true}
      min={0}
      max={100}
      label={true}
      step={1}
      value={[25, 75]}
    />
  </Block>

  <BlockTitle>Vertical Reversed</BlockTitle>
  <Block strongIos outlineIos class="display-flex justify-content-center">
    <Range
      class="margin-right"
      color="red"
      style="height: 160px"
      vertical={true}
      verticalReversed={true}
      min={0}
      max={100}
      label={true}
      step={1}
      value={25}
    />
    <Range
      class="margin-horizontal"
      color="red"
      style="height: 160px"
      vertical={true}
      verticalReversed={true}
      min={0}
      max={100}
      label={true}
      step={1}
      value={50}
    />
    <Range
      class="margin-horizontal"
      color="red"
      style="height: 160px"
      vertical={true}
      verticalReversed={true}
      min={0}
      max={100}
      label={true}
      step={1}
      value={75}
    />
    <Range
      class="margin-left"
      color="red"
      style="height: 160px"
      dual={true}
      vertical={true}
      verticalReversed={true}
      min={0}
      max={100}
      label={true}
      step={1}
      value={[25, 75]}
    />
  </Block>
</Page>
无噪 Logo
无噪文档
中文文档 · 复刻官网
查看所有 ↗