react-draggable拖拽简单实现

1.首先安装 react-draggable

yarn add react-draggable / npm i react-draggable

2.在页面中导入react-draggable

import Draggable from 'react-draggable'

3.实现移动

在Draggable 中必须要用一个容器来包裹住你要拖动的东西,否则不能用

1)数据:

const arr=[
    {id:1,title:123,top:700,left:1400},
    {id:2,title:456,top:0,left:1400},
    {id:3,title:789,top:300,left:999},
    {id:4,title:100,top:650,left:1003,
   ]

2)前端:

// 添加数据
const add=()=>{
 await axios.post("add", { title, img, top: getRandom(0, 700), left: getRandom(0,1400) })
}
// 随机位置
//最大值,最小值是通过父盒子和子盒子宽高进行计算的
const getRandom = (min, max) => {
        return Math.floor(Math.random() * (max - min) + min)
    }
// 设置一个拖拽元素可以移动的范围,就是拖拽元素的父节点
<div className="box">
    /*  <Drageable bounds={".box"}>
            <div className="box1'>123</div>
        </Drageable>
    */
    {arr.map((ele,index)=>(
        // bounds限制范围
        <Draggable bounds={".box"} key={ele.id}>
            <div className='box1' style={{'top':ele.top+'px','left':ele.left+'px'}} >                
                {ele.title}
            </div>
        </Draggable>
    ))}
    <button onClick={add}>添加</button>    //添加数据
</div>

3)css 

.box{
    width: 1500px;
    height: 800px;
    background: skyblue;
    position: relative;
    top: 100px;
}

.box1{
    width: 100px;
    height: 100px;
    background: pink;
    position: absolute;
    
}

 效果

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值