用户在给定范围内选择一个值的输入组件。
import * as React from "react";import { Slider } from "radix-ui";import "./styles.css";const SliderDemo = () => (<form><Slider.Root className="SliderRoot" defaultValue={[50]} max={100} step={1}><Slider.Track className="SliderTrack"><Slider.Range className="SliderRange" /></Slider.Track><Slider.Thumb className="SliderThumb" aria-label="Volume" /></Slider.Root></form>);export default SliderDemo;
可以是可控或不可控的。
支持多个滑块。
支持滑块之间的最小值。
支持在轨道上触摸或点击以更新值。
支持从右到左的方向。
完整的键盘导航。
从命令行安装组件。
导入所有部分并将其组合在一起。
包含滑块的所有部分。当在 form
中使用时,它将为每个滑块渲染一个 input
,以确保事件正确传播。
包含 Slider.Range
的轨道。
范围部分。必须位于 Slider.Track
内部。
可拖动的滑块。您可以渲染多个滑块。
使用 orientation
属性创建一个垂直滑块。
添加多个滑块和值以创建一个范围滑块。
使用 step
属性增加步进间隔。
使用 minStepsBetweenThumbs
避免滑块值相等。
遵循 滑块 WAI-ARIA 设计模式。
通过将基本部分抽象为自己的组件来创建自定义 API。
此示例抽象了所有 Slider
部分,以便可以将其用作自闭合元素。
由于在实现过程中遇到的 限制,以下示例将无法按预期正常工作,onMouseDown
和 onMouseUp
事件处理程序将不会触发:
我们建议使用指针事件(例如 onPointerDown
,onPointerUp
)。尽管存在上述限制,但这些事件更适合跨平台/设备处理,因为它们适用于所有指针输入类型(鼠标、触摸、笔等)。