react-draggableで要素のドラッグする
やりたいこと
- react-draggableを使う
npm install
npm install react-draggable
最小設定で試す
<Draggable>
タグで囲むことによって、
囲まれた要素がドラッグ可能になります。
import React from 'react'; import Draggable from 'react-draggable'; const Component = () => { return ( <> <Draggable> <div> ドラッグ可能 </div> </Draggable> </> ); }; export default Component;
よく使いそうな<Draggable>
のプロパティ
import React from 'react'; import Draggable from 'react-draggable'; const Component = () => { const onStart = (e, data) => { console.log('onStart!'); console.log(e); console.log(data); }; const onDrag = (e, data) => { console.log('onDrag!'); console.log(e); console.log(data); }; const onStop = (e, data) => { console.log('onStop!'); console.log(e); console.log(data); }; return ( <> <Draggable position={{ x: 500, y: 500 }}> <div className="draggable-window"> Draggable要素(初期位置で固定) </div> </Draggable> <Draggable positionOffset={{ x: 700, y: 700 }}> <div className="draggable-window"> Draggable要素(初期位置を指定。ドラッグ可能) </div> </Draggable> <Draggable onStart={onStart} onDrag={onDrag} onStop={onStop}> <div className="draggable-window"> イベントハンドリング </div> </Draggable> </> ); }; export default Component;
onStart
ドラッグ開始時にイベントを実行(ドラッグ開始時に一度だけ実行)onDrag
ドラッグ中にイベントを実行(ドラッグ中は連続で実行され続ける)onStop
ドラッグ終了時にイベントを実行(ドラッグ終了時に一度だけ実行)position
初期位置(固定)positionOffset
初期位置(変動)