当前位置: 首页 > news >正文

React Draggable插件实现拖拽功能

React Draggable插件实现拖拽功能

  • 1.下载Draggable插件
  • 2.引入Draggable插件
  • 3.设置一个div,并设置样式,并用Draggable包裹起来
  • 4.设置拖拽的范围
  • 5.Draggable常用props


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非左键可实现点击拖拽
axis: string // 'x':x轴方向拖拽、'y':y轴方向拖拽、'none':禁止拖拽
bounds: { left: number, top: number, right: number, bottom: number } | string // 限定移动的边界,接受值://(1)'parent':在移动元素的offsetParent范围内//(2)一个选择器,在指定的Dom节点内//(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] // 正在拖拽的网格范围
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 // 定义拖拽元素的缩放
http://www.lryc.cn/news/5123.html

相关文章:

  • MySQL-运算符
  • Hudi-基本概念(时间轴、文件布局、索引、表类型、查询类型、数据写、数据读、Compaction)
  • 数据分享|中国各省、各市、各区县分年、分月、逐日平均气温数据(2000年~2019年)
  • steam/csgo搬砖,2023年最暴利的项目
  • RDSDRDSPolarDBPolarDB-X的区别
  • 【Python学习笔记】30.Python3 命名空间和作用域
  • 后量子 KEM 方案:Kyber
  • 2019年广东工业大学腾讯杯新生程序设计竞赛(同步赛)
  • 生产Nginx现大量TIME-WAIT,连接耗尽,该如何处理?
  • Linux服务器clang-13安装(环境变量配置)
  • 【C++】C/C++内存管理模板初阶
  • 笙默考试管理系统-index展示
  • 前端基础知识6
  • 【项目精选】智慧物业管理系统
  • 解决HC-05/HC06等蓝牙模块的调试问题
  • dfs(八)数字的全排列 (含有重复项与非重复项)
  • 基于微信小程序的医院挂号系统小程序
  • 工程经验:残差连接对网络训练的巨大影响
  • 靓号管理-搜索
  • B站发帖软件哪个好用?好用的哔哩哔哩发帖工具
  • docker
  • Django by Example·第三章|Extending Your Blog Application@笔记
  • 23.2.13 Drive development 设备树信息解析相关代码
  • 智能工厂以MES系统为基础,实现"信息化减人,自动化换人"
  • 【数据挖掘实战】——电力窃漏电用户自动识别
  • 树莓派 安装 宝塔linux面板5.9. 2023-2-13
  • 如何提高短视频的播放量-4个技巧
  • 搜索二叉树
  • CentOS8基础篇5:用户账号与用户组的创建
  • 阿里云服务器使用