@@ -5,7 +5,7 @@ const drag_img = document.querySelector(".drag-img");
5
5
const label_Onupload = document . getElementById ( "upload-label" ) ;
6
6
7
7
// drag and drap events
8
- let isDragged ; // store the dragged elements
8
+ let isDragged ; // manage the state dragged elements zone
9
9
10
10
dragUploadFile . addEventListener ( "change" , ( e ) => {
11
11
if ( e . target . files . length > 3 ) {
@@ -34,6 +34,7 @@ function handleOnDragItem(e) {
34
34
function onDragOver ( e ) {
35
35
e . stopPropagation ( ) ;
36
36
e . preventDefault ( ) ;
37
+ e . dataTransfer . dropEffect = "move" ;
37
38
e . target . classList . add ( "currentBox" ) ;
38
39
}
39
40
@@ -46,16 +47,14 @@ function onDragDrop(e) {
46
47
e . target . classList . remove ( "currentBox" ) ;
47
48
const dropTarget = e . target . closest ( ".drag-area" ) ;
48
49
if ( ! dropTarget ) return ;
49
-
50
50
for ( let file of e . dataTransfer . files ) {
51
51
if ( file . type === "image/*" ) {
52
52
displayMultipleImages ( file ) ;
53
53
}
54
- }
55
-
56
- if ( isDragged ) {
57
- if ( dropTarget !== isDragged . parentElement ) {
58
- dropTarget . appendChild ( isDragged ) ;
54
+ if ( isDragged ) {
55
+ if ( dropTarget !== isDragged . parentElement ) {
56
+ dropTarget . appendChild ( isDragged ) ;
57
+ }
59
58
}
60
59
}
61
60
}
@@ -86,26 +85,20 @@ function dropZonEmptyCheck(image) {
86
85
87
86
// handling multiple files
88
87
function displayMultipleImages ( files ) {
89
- for ( let file of files ) {
90
- if ( ! file && ! file . type ( "image/*" ) && files . length > 3 ) {
91
- return false ;
92
- }
93
- }
94
-
95
- //
96
88
for ( let file of files ) {
97
89
let reader = new FileReader ( ) ;
90
+ reader . readAsDataURL ( file ) ;
98
91
reader . onload = ( ) => {
99
92
let image = new Image ( ) ;
100
93
image . src = reader . result ;
101
94
image . style . display = "block" ;
102
95
image . className = "drag-img" ;
103
96
image . setAttribute ( "draggable" , "true" ) ;
104
97
image . addEventListener ( "dragstart" , function ( e ) {
98
+ e . dataTransfer . setData ( "text/plain" , image . src ) ;
105
99
isDragged = e . target ;
106
100
} ) ;
107
101
imageShow . appendChild ( image ) ;
108
102
} ;
109
- reader . readAsDataURL ( file ) ;
110
103
}
111
104
}
0 commit comments