πŸ“œJS

Drag and Drop κ°„λ‹¨ν•˜κ²Œ κ΅¬ν˜„ν•˜κΈ°.

harry.93 2021. 2. 6. 15:15
λ°˜μ‘ν˜•

μ•„λž˜ 방법은 javascript λ₯Ό 톡해 Drag and Drop κΈ°λŠ₯을 μ‚¬μš©ν•˜λŠ” 방법에 λŒ€ν•΄ κ΅¬ν˜„ν•œ λ‚΄μš©μ΄λ©°

data-set 을 톡해 데이터λ₯Ό μ‹€μ œ 이동 μ‹œν‚€λŠ” 것이 μ•„λ‹ˆλΌ, μ‚¬μš©μžκ°€ μ •μ˜ν•œ ν•¨μˆ˜λ₯Ό μ‹€ν–‰ μ‹œν‚΄μœΌλ‘œμ¨

κ°„λ‹¨ν•˜κ²Œ κ΅¬ν˜„ν•œ μ˜ˆμ œμž…λ‹ˆλ‹€.

 

1. λ“œλž˜κ·Έ κΈ°λŠ₯이 μ‹œμž‘ν•˜λŠ” μš”μ†Œ ( aνƒœκ·Έ ) 에 μ•„λž˜μ™€ 같은 속성 λΆ€μ—¬

<a href="#" class="" draggable='true' ondragend="{functionName}";">λ“œλž˜κ·Έν•  ν•­λͺ©λͺ…</a>

- draggable : λ“œλž˜κ·Έκ°€ κ°€λŠ₯ν•˜λ„λ‘ μ„€μ •ν•˜κ² λ‹€λŠ” 속성

- ondragend : λ“œλž˜κ·Έκ°€ "λλ‚ λ•Œ" μ‹€ν–‰ν•  ν•¨μˆ˜ μ„€μ •

 

2. λ“œλž˜κ·Έν•œ μš”μ†Œλ₯Ό 받을 μ˜μ—­μ— μ•„λž˜μ™€ 같은 속성 λΆ€μ—¬

<div class="" ondragover='onDragOver(event);'>
...
</div>
<script>
function onDragOver(event) {
	event.preventDefault();
}
</script>

- ondragover : λ“œλž˜κ·Έλœ μš”μ†Œκ°€ μ˜€λ²„λ˜λ©΄, μ‹€ν–‰ν•  ν•¨μˆ˜ μ„€μ •

- event.preventDefault() : 이벀트 μ „νŒŒ λ°©μ§€ 섀정을 기본으둜 μΆ”κ°€ν•œλ‹€. 이후 μ»€μŠ€ν…€ μ •μ˜ν•΄λ„ 됨.

 

 

μ΄λ ‡κ²Œ κ΅¬μ„±ν•˜λ©΄, κ°„λ‹¨ν•˜κ²Œ λ“œλž˜κ·Έ μ•€ λ“œλ‘­ κΈ°λŠ₯을 κ΅¬ν˜„ν•˜λ©΄μ„œ, μ‚¬μš©μž μ •μ˜ ν•¨μˆ˜λ₯Ό 톡해 μ›ν•˜λŠ”λŒ€λ‘œ μˆ˜μ •μ΄ κ°€λŠ₯ν•˜λ‹€.

예λ₯Ό λ“€λ©°, λ“œλž˜κ·Έ ν•  μ˜μ—­μ—μ„œ νŒŒμΌμ΄λΌλ˜κ°€, λ‹€λ₯Έ 값듀을 가져와야 ν•œλ‹€λ©΄, μ‚¬μš©μž μ •μ˜ ν•¨μˆ˜ 츑에 data-params 같은 방식을 μ¨μ„œ λ“œλž˜κ·Έ μ˜€λ²„ λ˜λŠ” μ˜μ—­ λ‚΄ μš”μ†Œλ₯Ό μž‘μ•„ 바인딩 ν•˜λŠ” λ“±μ˜ 방식을 μ‚¬μš©ν•  수 μžˆλ‹€.

 

κ°„λ‹¨ν•˜κ²Œ κ΅¬ν˜„ν•˜κ³ μž ν•˜λ©΄ μ΄λ ‡κ²Œ ν•˜λŠ”κ²Œ 제일 λΉ¨λžλ‹€.

 

κ·Έ 외에 λ“œλž˜κ·Έμ•€λ“œλ‘­ 속성에 λŒ€ν•΄ μžμ„Έν•œ 글을 μ›ν•œλ‹€λ©΄ μ•„λž˜λ₯Ό μ°Έμ‘°λ°”λžλ‹ˆλ‹€.

mber.tistory.com/19

 

[javascript] μžλ°”μŠ€ν¬λ¦½νŠΈ Drag&Drop κ΅¬ν˜„ν•˜κΈ°

μ„œλ‘  Html λ“œλž˜κ·Έ μ•€ λ“œλ‘­ apiλŠ” 돔 이벀트 λͺ¨λΈμ—μ„œ 정보λ₯Ό 가져와 정보λ₯Ό μ—…λ°μ΄νŠΈ ν•˜λŠ” λ°©μ‹μœΌλ‘œ 이루어진닀. λ“œλž˜κ·Έ μ•€ λ“œλ‘­μ„ κ΅¬ν˜„ν•˜λŠ”λ°λŠ” μ—¬λŸ¬ 방법이 μžˆλŠ”λ° λ“œλž˜κ·Έ 된 μ•„μ΄ν…œμ˜ CSS μŠ€νƒ€

mber.tistory.com

 

728x90
λ°˜μ‘ν˜•