Slider

版本要求:
@ray-js/ray≥0.5.10

描述

滑动选择器,通过拖动滑块在数值区间内选取结果。

属性

属性类型必填默认值说明
minnumber否0最小值
maxnumber否100最大值
stepnumber否1步长,取值必须大于 0,并且可被 (max - min) 整除
disabledboolean否false是否禁用
valuenumber否0当前取值
activeColorstring否#007AFF已选择的颜色
backgroundColorstring否rgba(0, 0, 0, 0.2)背景条的颜色
blockSizenumber否28滑块的大小,取值范围为 12~28
blockColorstring否#FFF滑块的颜色
showValueboolean否false是否显示当前 value
namestring否-表单控件名称,提交表单时作为键名
否-完成一次拖动后触发
否-拖动过程中触发

示例代码

基础用法

import React from 'react';
import { Slider, View } from '@ray-js/ray';

export default function () {
  return (
    <View style={{ padding: '20px' }}>
      <Slider
        onChange={(e) => {
          console.log('Slider 改变:', e.detail.value);
        }}
      />
    </View>
  );
}

自定义样式

import React, { useState } from 'react';
import { Slider, View, Text } from '@ray-js/ray';

export default function () {
  const [value, setValue] = useState(100);

  return (
    <View style={{ padding: '20px' }}>
      <View style={{ marginBottom: '20px' }}>
        <Text>显示数值:</Text>
        <Slider
          value={value}
          showValue
          onChange={(e) => setValue(e.detail.value)}
          style={{ marginTop: '10px' }}
        />
      </View>
      <View style={{ marginBottom: '20px' }}>
        <Text>自定义范围和步长:</Text>
        <Slider
          min={50}
          max={200}
          step={5}
          value={value}
          showValue
          onChange={(e) => setValue(e.detail.value)}
          style={{ marginTop: '10px' }}
        />
      </View>
      <View style={{ marginBottom: '20px' }}>
        <Text>自定义颜色:</Text>
        <Slider
          value={value}
          activeColor="orange"
          blockColor="pink"
          backgroundColor="#e0e0e0"
          onChange={(e) => setValue(e.detail.value)}
          style={{ marginTop: '10px' }}
        />
      </View>
    </View>
  );
}

禁用与拖动事件

import React from 'react';
import { Slider, View, Text } from '@ray-js/ray';

export default function () {
  return (
    <View style={{ padding: '20px' }}>
      <View style={{ marginBottom: '20px' }}>
        <Text>禁用状态:</Text>
        <Slider disabled value={40} style={{ marginTop: '10px' }} />
      </View>
      <View style={{ marginBottom: '20px' }}>
        <Text>自定义滑块大小 + 拖动中事件:</Text>
        <Slider
          blockSize={18}
          showValue
          onChanging={(e) => console.log('拖动中:', e.detail.value)}
          onChange={(e) => console.log('拖动结束:', e.detail.value)}
          style={{ marginTop: '10px' }}
        />
      </View>
    </View>
  );
}