- html5
- html5/VA
- html5/canvas
- html5/drag-and-drop
- html5/form
- html5/geolocation
- html5/offline-web-application
- html5/others-api
- html5/outline
- html5/overview
- html5/richtext-edit
- html5/video&audio
- html5/web-storage
- html5/web-workers
- html5/webSqlDatabase
- html5/websocket
- html5/๋ฌธ์ ์
- html5practice/roundRect
- html5practice/์ฆ๊ฒจ์ฐพ๊ธฐ๋ชฉ๋ก๋ง๋ค๊ธฐ
1. ๋๋๊ทธ & ๋๋กญ API ¶
- ๊ธฐ์กด HTML์์๋ mousedown, mouseover ๋ฑ์ ์ด์ฉํ์ฌ ๋๋๊ทธ & ๋๋กญ์ ์ฒ๋ฆฌํ๋ค.
- HTML5์์๋ ๋๋๊ทธ & ๋๋กญ API๋ฅผ ์ ๊ณตํ๋ค.
- ๋ค๋ฅธ ์ ํ๋ฆฌ์ผ์ด์
๊ณผ ๋ฐ์ดํฐ๋ฅผ ์ฐ๊ณํ ์ ์๋ค.
- ๋ค๋ฅธ ์ ํ๋ฆฌ์ผ์ด์
๊ณผ ๋ฐ์ดํฐ๋ฅผ ์ฐ๊ณํ ์ ์๋ค.
2. ์ด์ฉ ๋ฐฉ๋ฒ ¶
- ๋๋๊ทธ ๋์์ ์ง์
- draggable = 'true'
- draggable = 'true'
- ๋๋๊ทธ ์์ ์ด๋ฒคํธ ์ฒ๋ฆฌ
- dragstart ์ด๋ฒคํธ ์ด์ฉ
- ondragstart
- DataTransfer ๊ฐ์ฒด๋ฅผ ์ด์ฉํ์ฌ ๋๋๊ทธ ๋์๊ณผ ๋๋กญ ๋์ ์ฌ์ด์ ์์์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋๋ค.
- dragstart ์ด๋ฒคํธ ์ด์ฉ
- ๋๋กญ ๋์ ์์์์ ๋ฐ์ํ๋ ์ด๋ฒคํธ๋ฅผ ์ ์ ํ ์ฒ๋ฆฌ
- ๊ธฐ๋ณธ๊ฐ ์ํ์์๋ ๋๋กญ์ ํ๋ฝํ์ง ์๋๋ค.
- ๋๋กญ์ ํ์ฉํ๋ ค๋ฉด ์ด๋ฒคํธ์ ๊ธฐ๋ณธ๊ฐ ์ํ๋ฅผ ์ทจ์ํ ํ์๊ฐ ์๋ค.
- event.preventDefault()
- event.preventDefault()
- ๋๋กญ์ ํ์ฉํ๋ ค๋ฉด ์ด๋ฒคํธ์ ๊ธฐ๋ณธ๊ฐ ์ํ๋ฅผ ์ทจ์ํ ํ์๊ฐ ์๋ค.
- ๋ค์ ์ธ ๊ฐ์ง์ ์ด๋ฒคํธ๋ฅผ ์ ์ ํ ์ฒ๋ฆฌํด์ผ ํ๋ค.
- dragenter
- ๋๋๊ทธ ์ค ๋ง์ฐ์ค ํฌ์ธํฐ๊ฐ ์์์ ๊ฒน์น๋ ์๊ฐ ํธ์ถ๋๋ ์ด๋ฒคํธ์ด๋ค.
- ๋๋๊ทธ ์ค ๋ง์ฐ์ค ํฌ์ธํฐ๊ฐ ์์์ ๊ฒน์น๋ ์๊ฐ ํธ์ถ๋๋ ์ด๋ฒคํธ์ด๋ค.
- dragover
- ๋๋๊ทธ ์ค ๋ง์ฐ์ค ํฌ์ธํฐ๊ฐ ์์ ์๋ฅผ ๊ฐ๋ก์ง๋ฅผ๋ ๋จ์์ ์ผ๋ก ๋ฐ์ํ๋ ์ด๋ฒคํธ์ด๋ค.
- ๋๋๊ทธ ์ค ๋ง์ฐ์ค ํฌ์ธํฐ๊ฐ ์์ ์๋ฅผ ๊ฐ๋ก์ง๋ฅผ๋ ๋จ์์ ์ผ๋ก ๋ฐ์ํ๋ ์ด๋ฒคํธ์ด๋ค.
- drop
- ๋๋กญ ์ ๋ฐ์ํ๋ ์ด๋ฒคํธ์ด๋ค.
- DataTransfer ๊ฐ์ฒด๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ๊บผ๋ด์ด ์ ์ ํ๊ฒ ์ฒ๋ฆฌํ๋ ๋ถ๋ถ์ด๋ค.
- ๋ฐ์ดํฐ๋ฅผ ๊บผ๋ผ ๋๋ ๋ฐ์ดํฐ ํฌ๋งท ํ์์ ์ธ์๋ฅผ ์ด์ฉํ์ฌ getData()๋ฅผ ํธ์ถํ๋ค.
- ๋ฐ์ดํฐ๋ฅผ ๊บผ๋ผ ๋๋ ๋ฐ์ดํฐ ํฌ๋งท ํ์์ ์ธ์๋ฅผ ์ด์ฉํ์ฌ getData()๋ฅผ ํธ์ถํ๋ค.
- Event Bubbling
- ์ฒ๋ฆฌ๋ฅผ ๋๋ธ ๋ค ์ด๋ฒคํธ๊ฐ ๋ค๋ฅธ ์ง์ ์ ํ๋๋ ๊ฒ์ ๋ง์์ผ ํ๋ค.
- ์ด๋ฒคํธ ๊ฐ์ฒด๊ฐ ๊ฐ์ง stopPropagation() ๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ ๋ง์ ์ ์๋ค.
- ์ฒ๋ฆฌ๋ฅผ ๋๋ธ ๋ค ์ด๋ฒคํธ๊ฐ ๋ค๋ฅธ ์ง์ ์ ํ๋๋ ๊ฒ์ ๋ง์์ผ ํ๋ค.
- ๋๋กญ ์ ๋ฐ์ํ๋ ์ด๋ฒคํธ์ด๋ค.
- dragenter
- ๊ธฐ๋ณธ๊ฐ ์ํ์์๋ ๋๋กญ์ ํ๋ฝํ์ง ์๋๋ค.
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) | ๋๋๊ทธ ์ค ํผ๋๋ฐฑ ์ด๋ฏธ์ง์ ์ถ๊ฐํ ์์๋ฅผ ์ง์ ํ๋ค. |