@@ -7,10 +7,10 @@ class CustomDrag extends Component {
7
7
constructor ( props ) {
8
8
super ( props ) ;
9
9
this . state = {
10
- pos1 : 0 ,
11
- pos2 : 0 ,
12
- pos3 : 0 ,
13
- pos4 : 0 ,
10
+ position1 : 0 ,
11
+ position2 : 0 ,
12
+ position3 : 0 ,
13
+ position4 : 0 ,
14
14
top : 0 ,
15
15
left : 0 ,
16
16
} ;
@@ -20,71 +20,68 @@ class CustomDrag extends Component {
20
20
let { dragId, dragItemId } = this . props ;
21
21
if ( dragId !== undefined && dragId !== '' && dragId !== null &&
22
22
dragItemId !== undefined && dragItemId !== '' && dragItemId !== null ) {
23
- let elmnt = document . getElementById ( `${ dragItemId } ` ) ;
23
+ let element = document . getElementById ( `${ dragItemId } ` ) ;
24
24
let dragIdElement = document . getElementById ( `${ dragId } ` ) ;
25
- if ( elmnt && dragIdElement ) {
26
- this . dragElement ( elmnt , dragIdElement ) ;
25
+ if ( element && dragIdElement ) {
26
+ this . dragElement ( element , dragIdElement ) ;
27
27
}
28
28
}
29
29
}
30
- dragElement = ( elmnt , dragIdElement ) => {
31
- if ( dragIdElement && elmnt ) {
30
+ dragElement = ( element , dragIdElement ) => {
31
+ if ( dragIdElement && element ) {
32
32
/* if present, the header is where you move the DIV from:*/
33
- dragIdElement . onmousedown = ( e ) => this . dragMouseDown ( e , elmnt ) ;
33
+ dragIdElement . onmousedown = ( e ) => this . dragMouseDown ( e , element ) ;
34
34
}
35
35
}
36
36
37
- dragMouseDown = ( e , elmnt ) => {
38
- let { pos1 , pos2 , pos3 , pos4 } = this . state ;
37
+ dragMouseDown = ( e , element ) => {
38
+ let { position1 , position2 , position3 , position4 } = this . state ;
39
39
e = e || window . event ;
40
40
e . preventDefault ( ) ;
41
41
// get the mouse cursor position at startup:
42
- pos3 = e . clientX ;
43
- pos4 = e . clientY ;
42
+ position3 = e . clientX ;
43
+ position4 = e . clientY ;
44
44
document . onmouseup = this . closeDragElement ;
45
45
// call a function whenever the cursor moves:
46
- document . onmousemove = ( e ) => this . elementDrag ( e , elmnt ) ;
47
- this . setState ( { pos1 , pos2 , pos3 , pos4 } ) ;
46
+ document . onmousemove = ( e ) => this . elementDrag ( e , element ) ;
47
+ this . setState ( { position1 , position2 , position3 , position4 } ) ;
48
48
}
49
49
50
- elementDrag = ( e , elmnt ) => {
51
- let { pos1 , pos2 , pos3 , pos4 } = this . state ;
50
+ elementDrag = ( e , element ) => {
51
+ let { position1 , position2 , position3 , position4 } = this . state ;
52
52
e = e || window . event ;
53
53
e . preventDefault ( ) ;
54
54
// calculate the new cursor position:
55
- pos1 = pos3 - e . clientX ;
56
- pos2 = pos4 - e . clientY ;
57
- pos3 = e . clientX ;
58
- pos4 = e . clientY ;
55
+ position1 = position3 - e . clientX ;
56
+ position2 = position4 - e . clientY ;
57
+ position3 = e . clientX ;
58
+ position4 = e . clientY ;
59
59
// set the element's new position:
60
- let offsetTop = elmnt . offsetTop ;
61
- let offsetLeft = elmnt . offsetLeft ;
62
- if ( offsetTop < 0 ) {
63
- offsetTop = 0 ;
64
- }
65
- if ( offsetLeft < 0 ) {
66
- offsetLeft = 0 ;
67
- }
68
- let top = ( offsetTop - pos2 ) ,
69
- left = ( offsetLeft - pos1 ) ;
60
+ let offsetTop = element . offsetTop ;
61
+ let offsetLeft = element . offsetLeft ;
62
+ offsetTop = Math . max ( offsetTop , 0 ) ;
63
+ offsetLeft = Math . max ( offsetLeft , 0 ) ;
64
+
65
+ let top = ( offsetTop - position2 ) ,
66
+ left = ( offsetLeft - position1 ) ;
70
67
let position = { } ;
71
68
let { draggingType } = this . props ;
72
69
switch ( draggingType ) {
73
70
case HORIZONTAL :
74
71
position = { top : null , left } ;
75
- elmnt . style . left = ( offsetLeft - pos1 ) + 'px' ;
72
+ element . style . left = ( offsetLeft - position1 ) + 'px' ;
76
73
break ;
77
74
case VERTICAL :
78
75
position = { top, left : null } ;
79
- elmnt . style . top = ( offsetTop - pos2 ) + 'px' ;
76
+ element . style . top = ( offsetTop - position2 ) + 'px' ;
80
77
break ;
81
78
default :
82
79
position = { top, left } ;
83
- elmnt . style . top = ( offsetTop - pos2 ) + 'px' ;
84
- elmnt . style . left = ( offsetLeft - pos1 ) + 'px' ;
80
+ element . style . top = ( offsetTop - position2 ) + 'px' ;
81
+ element . style . left = ( offsetLeft - position1 ) + 'px' ;
85
82
break ;
86
83
}
87
- this . setState ( { pos1 , pos2 , pos3 , pos4 , top, left } ) ;
84
+ this . setState ( { position1 , position2 , position3 , position4 , top, left } ) ;
88
85
this . props . getPositions ( position )
89
86
}
90
87
0 commit comments