react按钮拖拽_react实现拖拽

import React from 'react'

export default class extends React.Component {

constructor(props) {

super(props);

this.state = {

translateX: 0,

translateY: 0,

};

}

small_down=(e)=> {

var obig = this.refs.move.parentNode;

var osmall = this.refs.move;

var e = e || window.event;

/*用于保存小的div拖拽前的坐标*/

osmall.startX = e.clientX - osmall.offsetLeft;

osmall.startY = e.clientY - osmall.offsetTop;

/*鼠标的移动事件*/

document.onmousemove = function(e) {

var e = e || window.event;

osmall.style.left = e.clientX - osmall.startX + "px";

osmall.style.top = e.clientY - osmall.startY + "px";

/*对于大的DIV四个边界的判断*/

let x=obig.offsetWidth-osmall.offsetWidth

let y=obig.offsetHeight-osmall.offsetHeight

if (e.clientX - osmall.startX <= 0) {

osmall.style.left = 0 + "px";

}

if (e.clientY - osmall.startY <= 0) {

osmall.style.top = 0 + "px";

}

if (e.clientX - osmall.startX >= x) {

osmall.style.left = x + "px";

}

if (e.clientY - osmall.startY >= y) {

osmall.style.top = y + "px";

}

};

/*鼠标的抬起事件,终止拖动*/

document.onmouseup = function() {

document.onmousemove = null;

document.onmouseup = null;

};

}

componentDidMount(){

}

render() {

return (

style={{ width:"500px" ,height:"500px" ,background:"red" ,margin:"0 auto" ,position:"relative"}}

>

this.small_down(e)} style={{position:"absolute", left: `${this.state.translateX}px`,top:`${this.state.translateY}px`, width: 100, height: 100, backgroundColor: 'blue', }} />

)

}

};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值