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.0202 sec