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.設(shè)置一個div
并設(shè)置樣式,并用Draggable包裹起來
import "./index.css" // 引入拖拽插件 import Draggable from 'react-draggable'; export default function IndexPage() { return ( <div> {/* 給他設(shè)置一個父級 */} <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; }
這樣就可以進(jìn)行全局的拖拽,(他是可以拖拽出到屏幕外面的)
4.設(shè)置拖拽的范圍
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中進(jìn)行拖拽
或者可以寫成
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 // 默認(rèn)false,設(shè)為true非左鍵可實現(xiàn)點擊拖拽 axis: string // 'x':x軸方向拖拽、'y':y軸方向拖拽、'none':禁止拖拽 bounds: { left: number, top: number, right: number, bottom: number } | string // 限定移動的邊界,接受值: //(1)'parent':在移動元素的offsetParent范圍內(nèi) //(2)一個選擇器,在指定的Dom節(jié)點內(nèi) //(3){ left: number, top: number, right: number, bottom: number }對象,限定每個方向可以移動的距離 cancel:制定給一個選擇器組織drag初始化,例如'.body' defaultClassName:string // 拖拽ui類名,默認(rèn)'react-draggable' drfaultClassNameDragging:string // 正在拖拽ui類名,默認(rèn)'eact-draggable-dragging' defaultClassNameDragged:string //拖拽后的類名,默認(rèn)'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 // 鼠標(biāo)按下的回調(diào) onStart: DraggableEventHandler // 開始拖拽的回調(diào) onDrag:DraggableEventHandler // 拖拽時的回調(diào) onStop:DraggableEventHandler // 拖拽結(jié)束的回調(diào) position: {x: number, y: number} // 控制元素的位置 positionOffset: {x: number | string, y: number | string} // 相對于起始位置的偏移 scale:number // 定義拖拽元素的縮放
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
React?中如何將CSS?visibility?屬性設(shè)置為?hidden
這篇文章主要介紹了React中如何將CSS?visibility屬性設(shè)置為?hidden,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-05-05React?中hooks之?React.memo?和?useMemo用法示例總結(jié)
React.memo是一個高階組件,用于優(yōu)化函數(shù)組件的性能,通過記憶組件渲染結(jié)果來避免不必要的重新渲染,合理使用React.memo和useMemo可以顯著提升React應(yīng)用的性能,本文介紹React?中hooks之?React.memo?和?useMemo用法總結(jié),感興趣的朋友一起看看吧2025-01-01React服務(wù)端渲染和同構(gòu)的實現(xiàn)
本文主要介紹了React服務(wù)端渲染和同構(gòu)的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04如何在 React 中調(diào)用多個 onClick 函數(shù)
這篇文章主要介紹了如何在React中調(diào)用多個onClick函數(shù),本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2023-11-11react-native 完整實現(xiàn)登錄功能的示例代碼
本篇文章主要介紹了react-native 完整實現(xiàn)登錄功能的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-09-09react+zarm實現(xiàn)底部導(dǎo)航欄的示例代碼
本文主要介紹了react?+?zarm?實現(xiàn)底部導(dǎo)航欄的示例代碼,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-05-05