react-draggable實現(xiàn)拖拽功能實例詳解
屬性
常用屬性
屬性 | 默認(rèn)值 | 介紹 |
---|---|---|
axis | x | handle拖動的方向,可選值 x ,y,both |
handle | 無 | 指定拖動handle的class |
position | 無 | handle的位置,需要實時改變,否則handle無法拖動,類似于react的受控組件 |
onStrat | 方法 | 拖動開始 |
onDrag | 方法 | 拖動中 |
onStop | 方法 | 結(jié)束拖動 |
onMouseDown | 方法 | 觸發(fā)點擊 |
屬性列表
屬性名稱 | 說明 |
---|---|
bounds | 指定移動的邊界值;可以設(shè)置的值 left:number,top:number,right:number,bottom:number |
group | group= “name”,相同的組之間可以相互拖拽 |
sort | sort= “true”,是否開啟內(nèi)部排序,如果設(shè)置為false,它所在組無法排序,在其他組可以拖動排序 |
delay | delay= “0”, 鼠標(biāo)按下后多久可以拖拽 |
touchStartThreshold | 鼠標(biāo)移動多少px才能拖動元素 |
disabled | disabled= “true”,是否啟用拖拽組件 |
animation | 拖動時的動畫效果,還是很酷的,數(shù)字類型。如設(shè)置animation=1000表示1秒過渡動畫效果 |
handle | handle=“.mover” 只有當(dāng)鼠標(biāo)移動到css為mover類的元素上才能拖動 |
filter | filter=“.unmover” 設(shè)置了unmover樣式的元素不允許拖動 |
draggable | draggable=“.item” 那些元素是可以被拖動的 |
ghostClass | ghostClass=“ghostClass” 設(shè)置拖動元素的占位符類名,你的自定義樣式可能需要加!important才能生效,并把forceFallback屬性設(shè)置成true |
chosenClass | ghostClass=“hostClass” 被選中目標(biāo)的樣式,你的自定義樣式可能需要加!important才能生效,并把forceFallback屬性設(shè)置成true |
dragClass | dragClass="dragClass"拖動元素的樣式,你的自定義樣式可能需要加!important才能生效,并把forceFallback屬性設(shè)置成true |
dataIdAttr | dataIdAttr: ‘data-id’ |
forceFallback | 默認(rèn)false,忽略HTML5的拖拽行為,因為h5里有個屬性也是可以拖動,你要自定義ghostClass chosenClass dragClass樣式時,建議forceFallback設(shè)置為true |
fallbackClass | 默認(rèn)false,克隆的DOM元素的類名 |
allbackOnBody | 默認(rèn)false,克隆的元素添加到文檔的body中 |
fallbackTolerance | 拖拽之前應(yīng)該移動的px |
scroll | 默認(rèn)true,有滾動區(qū)域是否允許拖拽 |
scrollFn | 滾動回調(diào)函數(shù) |
scrollSensitivity | 距離滾動區(qū)域多遠時,滾動滾動條 |
scrollSpeed | 滾動速度 |
事件列表
屬性名稱 | 說明 |
---|---|
start | 開始拖動時觸發(fā)的事件 |
add | 從一個數(shù)組拖拽到另外一個數(shù)組時觸發(fā)的事件 |
remove | 移除事件 |
update | 拖拽變換位置時觸發(fā)的事件 |
end | 拖拽完成時的事件 |
choose | 鼠標(biāo)點擊選中要拖拽元素時的事件 |
unchoose | 選中后松開鼠標(biāo)的事件 |
sort | 位置變化時的事件 |
clone | 從一個數(shù)組拖拽到另外一個數(shù)組時觸發(fā)的事件和add不同,clone是復(fù)制了數(shù)組元素 |
move | 自定義控制那些元素可以拖拽或不允許拖拽并控制是否允許停靠 |
舉例
首先安裝 react-draggable
yarn add react-draggable / npm i react-draggable
在頁面中導(dǎo)入react-draggable
import Draggable from 'react-draggable'
實現(xiàn)移動
在Draggable 中必須要用一個容器來包裹住你要拖動的東西,否則不能用
1.基本
<Draggable size={200}> <div> <div className='mover' ></div> <div className='unmover'> asdasdasd </div> </div> </Draggable>
效果
2. 初始化開始位置
<Draggable size={200} defaultPosition={{ x: 25, y: 25 }}> <div> <div className='mover' ></div> <div className='unmover'> asdasdasd </div> </div> </Draggable>
效果
3. 限制拖拽范圍
<Draggable size={200} defaultPosition={{ x: 25, y: 25 }} bounds={{ top: 0 }} > <div> <div className='mover' ></div> <div className='unmover'> asdasdasd </div> </div> </Draggable>
效果
4. 限制拖拽內(nèi)容
<Draggable size={200} defaultPosition={{ x: 25, y: 25 }} bounds={{ top: 0 }} handle=".mover" filter=".unmover" > <div> <div className='mover' ></div> <div className='unmover'> asdasdasd </div> </div> </Draggable>
效果
希望小編寫的能夠幫助到你??
總結(jié)
到此這篇關(guān)于react-draggable實現(xiàn)拖拽功能的文章就介紹到這了,更多相關(guān)react-draggable拖拽功能內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
react如何同步獲取useState的最新狀態(tài)值
這篇文章主要介紹了react如何同步獲取useState的最新狀態(tài)值問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01在create-react-app中使用css modules的示例代碼
這篇文章主要介紹了在create-react-app中使用css modules的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-07-07React中組件的this.state和setState的區(qū)別
在React開發(fā)中,this.state用于初始化和讀取組件狀態(tài),而setState()用于安全地更新狀態(tài),正確使用這兩者對于管理React組件狀態(tài)至關(guān)重要,避免性能問題和常見錯誤2024-09-09jsoneditor二次封裝實時預(yù)覽json編輯器組件react版
這篇文章主要為大家介紹了jsoneditor二次封裝實時預(yù)覽json編輯器組件react版示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-10-10React中實現(xiàn)組件通信的幾種方式小結(jié)
在構(gòu)建復(fù)雜的React應(yīng)用時,組件之間的通信是至關(guān)重要的,從簡單的父子組件通信到跨組件狀態(tài)同步,不同組件之間的通信方式多種多樣,下面我們認(rèn)識react組件通信的幾種方式,需要的朋友可以參考下2024-04-04react hooks使用Echarts圖表中遇到的情況及相關(guān)配置問題
這篇文章主要介紹了react hooks使用Echarts圖表中遇到的情況及相關(guān)配置問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03詳解如何在項目中使用jest測試react native組件
本篇文章主要介紹了詳解如何在項目中使用jest測試react native組件,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-02-02