react中使用react-draggable实现拖拽,并解决在移动设备中使用拖拽后点击事件无效

1.通过npm安装react-draggable

npm  i react-draggable

2.引入react-draggable

import Draggable from 'react-draggable'

3.例如我们需要生成心愿卡片并且利用组件Draggable实现心愿卡片的拖拽

 <div className="wish-cards" >

       {wishCards.map((card, index) => (
        //position:{x:Math.floor(Math.random() * 400),y:Math.floor(Math.random() * 200)}

         <Draggable key={card.id} defaultPosition={card.position} bounds = {{top:0}}>

           <div key={index} className="wish-card not-drageble" >

          //生成的心愿卡片为背景图片

           <div className="image-container" style={{ backgroundImage: `url(${card.image})`,width:'100px',height:'100px',backgroundSize:'contain',marginTop:'10px' }} >

             <span>{card.wish}</span>

             <button style={{float:'right'}} className="delete-btn"

               data-card-id={card.id} onMouseDown={()=>{handlerDeleteCard(card.id)}}>X</button>

           </div>

         </div>

        </Draggable>

       ))}

     </div>

 4.在最后我们需要注意的是:在移动端中使用 react-draggable 进行拖拽操作时,在拖拽内部onClick事件是失效的

示例代码:

<button style={{float:'right'}} className="delete-btn"

               data-card-id={card.id} onTouchStart={()=>{handlerDeleteCard(card.id)}} >X</button>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值