React Draggable插件如何實現(xiàn)拖拽功能
更新時間:2024年07月08日 08:47:43 作者:zhaojiaxing123
這篇文章主要介紹了React Draggable插件如何實現(xiàn)拖拽功能問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
1.下載Draggable插件
npm install react-draggable
2.引入Draggable插件
// 引入拖拽插件 import Draggable from 'react-draggable';
3.設置一個div
并設置樣式,并用Draggable包裹起來
import "./index.css" // 引入拖拽插件 import Draggable from 'react-draggable'; export default function IndexPage() { return ( <div> {/* 給他設置一個父級 */} <div className="fu"> <Draggable > <div className="top"> 這是上面的頁面 </div> </Draggable> </div> </div> ); }
.top { background-color: green; width: 300px; height: 300px; } .fu{ background-color: red; width: 800px; height: 500px; border-end-end-radius: 0; }
這樣就可以進行全局的拖拽,(他是可以拖拽出到屏幕外面的)
4.設置拖拽的范圍
import "./index.css" // 引入拖拽插件 import Draggable from 'react-draggable'; export default function IndexPage() { return ( <div> <div className="fu"> <Draggable bounds={{right: 500, left: 0,top:0,bottom:200} } > <div className="top"> 這是上面的頁面 </div> </Draggable> </div> </div> ); }
這樣就是只能在父級div中進行拖拽
或者可以寫成
import "./index.css" // 引入拖拽插件 import Draggable from 'react-draggable'; export default function IndexPage() { return ( <div> <div className="fu"> <Draggable bounds={".fu"} > <div className="top"> 這是上面的頁面 </div> </Draggable> </div> </div> ); }
5.Draggable常用props
allowAnyClick: boolean // 默認false,設為true非左鍵可實現(xiàn)點擊拖拽 axis: string // 'x':x軸方向拖拽、'y':y軸方向拖拽、'none':禁止拖拽 bounds: { left: number, top: number, right: number, bottom: number } | string // 限定移動的邊界,接受值: //(1)'parent':在移動元素的offsetParent范圍內 //(2)一個選擇器,在指定的Dom節(jié)點內 //(3){ left: number, top: number, right: number, bottom: number }對象,限定每個方向可以移動的距離 cancel:制定給一個選擇器組織drag初始化,例如'.body' defaultClassName:string // 拖拽ui類名,默認'react-draggable' drfaultClassNameDragging:string // 正在拖拽ui類名,默認'eact-draggable-dragging' defaultClassNameDragged:string //拖拽后的類名,默認'react-draggable-dragged' defaultPosition:{ x: number, y: number } // 起始x和y的位置 disabled:boolean // true禁止拖拽任何元素 grid:[number, number] // 正在拖拽的網(wǎng)格范圍 handle:string // 初始拖拽的的選擇器'.handle' offsetParent:HTMLElement // 拖拽的offsetParent onMouseDown: (e: MouseEvent) => void // 鼠標按下的回調 onStart: DraggableEventHandler // 開始拖拽的回調 onDrag:DraggableEventHandler // 拖拽時的回調 onStop:DraggableEventHandler // 拖拽結束的回調 position: {x: number, y: number} // 控制元素的位置 positionOffset: {x: number | string, y: number | string} // 相對于起始位置的偏移 scale:number // 定義拖拽元素的縮放
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
React?中如何將CSS?visibility?屬性設置為?hidden
這篇文章主要介紹了React中如何將CSS?visibility屬性設置為?hidden,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-05-05React?中hooks之?React.memo?和?useMemo用法示例總結
React.memo是一個高階組件,用于優(yōu)化函數(shù)組件的性能,通過記憶組件渲染結果來避免不必要的重新渲染,合理使用React.memo和useMemo可以顯著提升React應用的性能,本文介紹React?中hooks之?React.memo?和?useMemo用法總結,感興趣的朋友一起看看吧2025-01-01如何在 React 中調用多個 onClick 函數(shù)
這篇文章主要介紹了如何在React中調用多個onClick函數(shù),本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧2023-11-11react-native 完整實現(xiàn)登錄功能的示例代碼
本篇文章主要介紹了react-native 完整實現(xiàn)登錄功能的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-09-09