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