ユーザーが指定された範囲内から値を選択する入力。
import React from 'react';import * as Slider from '@radix-ui/react-slider';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
を使用します。
Slider WAI-ARIA デザインパターン に準拠しています。
プリミティブな部分を独自のコンポーネントに抽象化することで、独自の API を作成します。
この例では、Slider
のすべての部分を抽象化して、自己完結型の要素として使用できるようにしています。
実装中に直面した制限 により、次の例は期待どおりに動作せず、onMouseDown
および onMouseUp
イベントハンドラーは発火しません。
代わりにポインターイベント (例: onPointerDown
、onPointerUp
) を使用することをお勧めします。上記の制限に関係なく、これらのイベントは、すべてのポインター入力タイプ (マウス、タッチ、ペンなど) で発火するため、クロスプラットフォーム/デバイスの処理に適しています。