关于dragable选中div元素之后,传递内容并且改变元素自身状态,react原生h5实现

直接使用原生方法实现,

主要还是通过onDragStart事件在获取的默认值中的dataTransfer来进行传递data,

之后在需要被放置的元素中使用该方法获取对应的参数以及设置开启是否已经被放置来进行对已经拖动的元素的样式更改,

后续会继续添加关于,拖动div元素之后生成一系列流程图的操作此为第一版本

import { useState } from "react";
import './index.scss'
export default function  New3(){
  function allowDrop(ev)
{
	ev.preventDefault();
}
const [state,sets]=useState('on')
function drag(ev)
{
  console.log('ew',ev.target)
	ev.dataTransfer.setData("Text",ev.target.innerText);
	ev.dataTransfer.setData("choice","check");
}

function drop(ev)
{
	ev.preventDefault();
	var data=ev.dataTransfer.getData("Text");
	var state=ev.dataTransfer.getData("choice");
  console.log(data,'datra',ev.target)
  if(state ==="check"){
    sets("off")
  }
	ev.target.innerText=data;
}
  return(<div> 
     <div draggable={true} onDragStart={(e)=>drag(e)} className={state==='on'?'on':"off"}>我是被传递的值</div>
    <div id="div1" style={{backgroundColor:"red",height:'200px'}} onDrop={drop} onDragOver={allowDrop}></div>

  </div>)
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值