U E D R , A S I H C RSS

html5/drag-and-drop


1. ๋“œ๋ž˜๊ทธ & ๋“œ๋กญ API

  • ๊ธฐกด HTML—„œ๋Š” mousedown, mouseover ๋“„ ดšฉ•˜—ฌ ๋“œ๋ž˜๊ทธ & ๋“œ๋กญ„ ฒ˜๋ฆฌ–ˆ๋‹ค.
  • HTML5—„œ๋Š” ๋“œ๋ž˜๊ทธ & ๋“œ๋กญ API๋ฅผ  œ๊ณต•œ๋‹ค.
    • ๋‹ค๋ฅธ • ”Œ๋ฆฌผ€ด…˜๊ณผ ๋ฐด„ฐ๋ฅผ —ฐ๊ณ„•  ˆ˜ žˆ๋‹ค.

2. ดšฉ ๋ฐฉ๋ฒ•

  • ๋“œ๋ž˜๊ทธ ๋Œ€ƒ„ ง€ •
    • draggable = 'true'
  • ๋“œ๋ž˜๊ทธ ‹œž‘ ด๋ฒคŠธ ฒ˜๋ฆฌ
    • dragstart ด๋ฒคŠธ ดšฉ
    • ondragstart
    • DataTransfer ๊ฐฒด๋ฅผ ดšฉ•˜—ฌ ๋“œ๋ž˜๊ทธ ๋Œ€ƒ๊ณผ ๋“œ๋กญ ๋Œ€ƒ ‚ฌด— ž„˜˜ ๋ฐด„ฐ๋ฅผ ฃผ๊ณ ๋ฐ›๋Š”๋‹ค.
  • ๋“œ๋กญ ๋Œ€ƒ š”†Œ—„œ ๋ฐœƒ•˜๋Š” ด๋ฒคŠธ๋ฅผ   ˆžˆ ฒ˜๋ฆฌ
    • ๊ธฐ๋ณธ๊ฐ’ ƒƒœ—„œ๋Š” ๋“œ๋กญ„ —ˆ๋ฝ•˜ง€ •Š๋Š”๋‹ค.
      • ๋“œ๋กญ„ —ˆšฉ•˜๋ ค๋ฉด ด๋ฒคŠธ˜ ๊ธฐ๋ณธ๊ฐ’ ƒƒœ๋ฅผ ทจ†Œ•  •„š”๊ฐ€ žˆ๋‹ค.
        • event.preventDefault()
    • ๋‹คŒ „ธ ๊ฐ€ง€˜ ด๋ฒคŠธ๋ฅผ   ˆžˆ ฒ˜๋ฆฌ•ด•ผ •œ๋‹ค.
      • dragenter
        • ๋“œ๋ž˜๊ทธ ค‘ ๋งˆšฐŠค ฌธ„ฐ๊ฐ€ š”†Œ™€ ๊ฒนน˜๋Š” ˆœ๊ฐ„ ˜ธถœ๋˜๋Š” ด๋ฒคŠธด๋‹ค.
      • dragover
        • ๋“œ๋ž˜๊ทธ ค‘ ๋งˆšฐŠค ฌธ„ฐ๊ฐ€ š”†Œ œ„๋ฅผ ๊ฐ€๋กœง€๋ฅผ๋•Œ ๋‹จ† œผ๋กœ ๋ฐœƒ•˜๋Š” ด๋ฒคŠธด๋‹ค.
      • drop
        • ๋“œ๋กญ ‹œ ๋ฐœƒ•˜๋Š” ด๋ฒคŠธด๋‹ค.
        • DataTransfer ๊ฐฒด๋กœ๋ถ€„ฐ ๋ฐด„ฐ๋ฅผ ๊บผ๋‚ด–ด   ˆ•˜๊ฒŒ ฒ˜๋ฆฌ•˜๋Š” ๋ถ€๋ถ„ด๋‹ค.
          • ๋ฐด„ฐ๋ฅผ ๊บผ๋‚ผ ๋•Œ๋Š” ๋ฐด„ฌ๋งท ˜•‹˜ ธˆ˜๋ฅผ ดšฉ•˜—ฌ getData()๋ฅผ ˜ธถœ•œ๋‹ค.
        • Event Bubbling
          • ฒ˜๋ฆฌ๋ฅผ ๋๋‚ธ ๋’ค ด๋ฒคŠธ๊ฐ€ ๋‹ค๋ฅธ šง—  „ŒŒ๋˜๋Š” ๊ฒƒ„ ๋ง‰•„•ผ •œ๋‹ค.
          • ด๋ฒคŠธ ๊ฐฒด๊ฐ€ ๊ฐ€„ stopPropagation() ๋ฉ”„œ๋“œ๋ฅผ ˜ธถœ•˜—ฌ ๋ง‰„ ˆ˜ žˆ๋‹ค.

3. ด๋ฒคŠธ

ด๋ฒคŠธ ด๋ฒคŠธ๋ฅผ •Œ๋ฆฌ๋Š” ๊ณณ „ค๋ช…
dragstart ๋“œ๋ž˜๊ทธ ๋Œ€ƒ š”†Œ ๋“œ๋ž˜๊ทธ๊ฐ€ ‹œž‘๋˜—ˆŒ
drag ๋“œ๋ž˜๊ทธ ๋Œ€ƒ š”†Œ ๋“œ๋ž˜๊ทธ ค‘
dragenter ๋“œ๋ž˜๊ทธ ค‘ ๋งˆšฐŠค ปค„œ๊ฐ€ œ„น˜•œ š”†Œ ๋“œ๋ž˜๊ทธ กฐž‘ด š”†Œ •ˆ˜ ๋ฒ”œ„— ๋“ค–ด˜ด
dragover ๋“œ๋ž˜๊ทธ ค‘ ๋งˆšฐŠค ปค„œ๊ฐ€ œ„น˜•œ š”†Œ ๋“œ๋ž˜๊ทธ กฐž‘ด š”†Œ •ˆ˜ ๋ฒ”œ„๋ฅผ †ต๊ณผ ค‘
dragleave ๋“œ๋ž˜๊ทธ ค‘ ๋งˆšฐŠค ปค„œ๊ฐ€ œ„น˜•œ š”†Œ ๋“œ๋ž˜๊ทธ กฐž‘ด š”†Œ •ˆ˜ ๋ฒ”œ„๋ฅผ ๋ฒ—–ด๋‚จ
drop ๋“œ๋กญ•  ๊ณณ˜ š”†Œ ๋“œ๋กญ๋˜—ˆŒ
dragend ๋“œ๋ž˜๊ทธ ๋Œ€ƒ š”†Œ ๋“œ๋ž˜๊ทธ ข…๋ฃŒ

4. †„๊ณผ ๋ฉ”„œ๋“œ

†„/๋ฉ”„œ๋“œ „ค๋ช…
dropEffect ๋“œ๋ž˜๊ทธ & ๋“œ๋กญ ๋™ž‘˜ ข…๋ฅ˜๋ฅผ ๋‚˜ƒ€๋‚ด๋Š” ๋ฌธž—ด
effectAllowed —ˆšฉ•  dropEffect๋ฅผ ง€ ••˜๋Š” ๋ฌธž—ด
types setData()๋ฅผ ˜ธถœ•  ๋•Œ ง€ •๋˜๋Š” ฌ๋งท ๋ฌธž—ด„ ๋ฐฐ—ด ˜•‹œผ๋กœ –ป„ ˆ˜ žˆ๋‹ค.
clearData(type) ๋“œ๋ž˜๊ทธ ค‘ธ ๋ฐด„ฐ๋ฅผ ‚ญ œ•œ๋‹ค.
setData(type, data) ๋“œ๋ž˜๊ทธ & ๋“œ๋กญ•  ๋ฐด„ฐ๋ฅผ  €žฅ•œ๋‹ค.
getData(type) ฌ๋งท„ ง€ ••˜—ฌ ๋ฐด„ฐ๋ฅผ ๊ฐ€ ธ˜จ๋‹ค.
files ๋‹ค๋ฅธ –ด”Œ๋ฆฌผ€ด…˜œผ๋กœ๋ถ€„ฐ ๋“œ๋ž˜๊ทธ & ๋“œ๋กญ๋œ ŒŒผ„ ๊ฐ€ ธ˜จ๋‹ค.
setDragImage(image, x, y) img š”†Œ๋ฅผ ดšฉ•˜—ฌ ๋“œ๋ž˜๊ทธ ค‘˜ ”ผ๋“œ๋ฐ„ ง€ ••œ๋‹ค.
addElement(element) ๋“œ๋ž˜๊ทธ ค‘ ”ผ๋“œ๋ฐ ด๋ฏธง€— ถ”๊ฐ€•  š”†Œ๋ฅผ ง€ ••œ๋‹ค.
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:31:41
Processing time 0.0305 sec