All'alba vincerò

At dawn, I will win!

Javascript

[JS] 드래그(drag) 앤 드롭(drop) 이벤트

나디아 Nadia 2024. 7. 24. 20:51

📌 드래그(drag) 앤 드롭(drop) 이벤트

 

 

darggable 속성

: HTML 요소가 드래그 가능하도록 설정

  • "true": 드래그 ⭕
  • "false": 드래그 ❌ (기본값)
<div id="drag-item" draggable="true">
  Drag me!
</div>

 

 


dragstart

: 드래그를 시작할 때 발생 

document.addEventListener('dragstart', (event) => {
  console.log('Drag started');
  event.dataTransfer.setData('Dragged data');
});

 

 

 

drag

: 드래그 중에 계속 발생

document.addEventListener('drag', (event) => {
  console.log('Dragging');
});

 

 

 

dragend

: 드래그가 끝날 때 발생

document.addEventListener('dragend', (event) => {
  console.log('Drag ended');
});

 

 

 

dragover

: 드래그된 요소가 드롭 대상 위를 지나갈 때 발생

  • 드롭을 허용하기 위해서는 e.preventDefault()를 호출해야 함 
dropTarget.addEventListener('dragover', (event) => {
  event.preventDefault(); // 드롭을 허용
  console.log('Drag over');
});

 

 

 

dragenter

: 드래그된 요소가 드롭 영역에 들어왔을 때 발생

dropTarget.addEventListener('dragenter', (event) => {
  console.log('Drag entered');
});

 

 

 

dragleave

: 드래그된 요소가 드롭 영역에서 나갔을 때 발생

dropTarget.addEventListener('dragleave', (event) => {
  console.log('Drag left');
});

 

 

 

drop

: 드래그된 요소를 드롭 대상에 놓았을 때 발생

dropTarget.addEventListener('drop', (e) => {
  e.preventDefault(); // 기본 동작 방지
  
  const data = event.dataTransfer.getData('text/plain');
  console.log('Dropped data:', data);
});

 

 


 

 

Document: drag 이벤트 - Web API | MDN

drag 이벤트는 사용자가 요소 또는 텍스트를 드래그하는 동안 매 수백 밀리초마다 발생합니다.

developer.mozilla.org

 

 

 

HTML 드래그 앤 드롭 API - Web API | MDN

HTML 드래그 앤 드롭 인터페이스는 Firefox와 다른 브라우저에서 어플리케이션이 드래그 앤 드롭 기능을 사용하게 해줍니다. 이 기능을 이용해 사용자는 draggable 요소를 마우스로 선택해 droppable 요

developer.mozilla.org

 

 

draggable - HTML: Hypertext Markup Language | MDN

draggable 전역 특성은 요소의 드래그 가능 여부를 나타내는 열거형 특성으로, 네이티브 브라우저 동작 방식과 HTML Drag and Drop API 모두 통제합니다.

developer.mozilla.org

 

 

Document: dragstart 이벤트 - Web API | MDN

dragstart 이벤트는 사용자가 요소나 선택한 텍스트를 드래그하기 시작할 때 발생합니다.

developer.mozilla.org

 

 

Document: dragend 이벤트 - Web API | MDN

dragend 이벤트는 마우스 버튼을 놓거나 이스케이프 키를 눌러 드래그 작업이 끝나게 되면 발생합니다.

developer.mozilla.org

 

 

HTMLElement: dragover event - Web APIs | MDN

The dragover event is fired when an element or text selection is being dragged over a valid drop target (every few hundred milliseconds).

developer.mozilla.org

 

 

HTMLElement: dragenter event - Web APIs | MDN

The dragenter event is fired when a dragged element or text selection enters a valid drop target. The target object is the immediate user selection (the element directly indicated by the user as the drop target), or the <body> element.

developer.mozilla.org

 

 

HTMLElement: dragleave event - Web APIs | MDN

The dragleave event is fired when a dragged element or text selection leaves a valid drop target.

developer.mozilla.org

 

 

HTMLElement: drop event - Web APIs | MDN

The drop event is fired when an element or text selection is dropped on a valid drop target. To ensure that the drop event always fires as expected, you should always include a preventDefault() call in the part of your code which handles the dragover event

developer.mozilla.org