์ค๋์ ๊ณผ์ ๋ฅผ ํ๋ค๊ฐ ๋๋๊ทธ๋ก ๋ชฉ๋ก์ ์์๋ฅผ ๋ฐ๊ฟ ์ ์๋๋ก ํด์ฃผ๋ Sortable JS๋ฅผ ์ฌ์ฉํด ๋ณผ ๊ธฐํ๊ฐ ์๊ฒจ ๊ฐ๋จํ ์ฌ์ฉ๋ฒ๊ณผ ํ๊ธฐ๋ฅผ ๋จ๊ธฐ๋ฌ ์๋ค !
new Sortable(์์, ์ต์
)
์๊ฐ๋ณด๋ค ์ฌ์ฉ๋ฒ์ด ๋๋ฌด๋๋ฌด ๊ฐ๋จํด์ ์กฐ๊ธ ๋๋๋ค !
๋ณ๋์ ์ค์ ์์ด sortable js ์ค์น ํ import, ํน์ cdn๋ฐฉ์์ผ๋ก import ํ์
์๋์๊ฐ์ด ul
ํ๊ทธ๋ฅผ new Sortable()
์ ํตํด Sortableํ ์์๋ก ๋ง๋ค์ด์ฃผ๊ธฐ๋งํ๋ฉด
๊ฐ๋จํ๊ฒ ul
ํ๊ทธ ์๋์ ๋ชจ๋ li
์์๋ค์ด ๋ง์ฐ์ค ๋๋๊ทธ ๋ง์ผ๋ก ์์๋ณ๊ฒฝ์ด ๊ฐ๋ฅํด์ง๋ค
$ npm i sortablejs
import Sortable from "sortablejs";
const ulEl = document.querySelector('ul')
// new Sortable()์ ์ธ์๋ก ๋ด์ ์์์ ํ์์์๋ค์ ๋๋๊ทธ ์ด๋์ด ๊ฐ๋ฅํด์ง๋ค
new Sortable(ulEl)
new Sortable()
์ ๋๋ฒ์งธ ์ธ์๋ก๋ ๋ค์ํ ์ต์
์ ๋ฃ์ ์ ์๋ค.
์ฐ์ ์ ๊ฐ์ฅ ํํ๊ฒ ์ฌ์ฉ ํ ๊ฒ ๊ฐ์ ๋๊ฐ์ ์ต์
๋ง ์
ํ๋ณด์๋ค!
animation : ์์์ ์ด๋ํจ๊ณผ๋ฅผ ๋ถ๋๋ฝ๊ฒ ๋ณด์ด๋๋ก animation ํจ๊ณผ ๋ถ์ฌ
ghostClass : ์์ ํด๋ฆญ(์ด๋)์ค, ghostClass์ ํ ๋น ๋ ๊ฐ์ ํด๋น ์์์ Class๋ช
์ผ๋ก ๋ถ์ฌ
( CSS์์ li.active
์ color:red
์์ฑ์ ๋ถ์ฌํ ๋ค , ghostClass
๋ก 'active'
๋ฅผ ํ ๋น
=> ์์ ์ด๋ ์ค ์ ํ ๋ ์์์ ๊ธ์์์ด red๊ฐ ๋จ )
๋ ๋ค์ํ ์ต์ ์ ํฌ์คํ ์ต์๋จ์ ๋งํฌ๋ฅผ ์ฐธ๊ณ !
๋ ๊ฐ์ ๊ทธ๋ฃน์ ๋ง๋ค๊ณ , ๊ฐ ์์์ ์ต์
group
์ ๊ฐ์ ๊ฐ์ ํ ๋นํด์ฃผ๋ฉด
์ด์ ์๋ก์ ์์ดํ
๊ตํ์ด ๊ฐ๋ฅํด์ง๋ค !
์ like์ dislike์ ์์์์๋ค์ ๋ง์ฐ์ค๋ก ์ด๋์์ผ๋ณด์ !
์ฒ์ ๊ณผ์ ์ sortablejs ๋ฅผ ์ฌ์ฉํด๋ณด๋ผ๊ณ ํ์ ๋์๋
๋ฑ ๋ด๋ ๋๋ฌด ์ด๋ ค์ ๋ณด์ธ๋ค๋ฉฐ.. ๋ฌด์ํ๊ณ ๊ณผ์ ๋ฅผ ์งํํ์๋๋ฐ
๊ณผ์ ๊ฐ ๋นจ๋ฆฌ ๋๋์ '๊ทธ๋ ํ๋ฒ ํด๋ณด์ !' ํ๊ณ ๋ง์ ์๋๋ฅผ ํ๋๋ ์๋ ์ด๋ ๊ฒ ์ฌ์ธ์ค์ด์ผ...
์๊ฐ๋ณด๋ค ์ด์๊ณ ์ ์ฉํด๋ณด์ฌ์ ์ฌ์ฉ๋ฒ์ ์ข ๋ ์ตํ๋๋ฉด ์์ผ๋ก๋ ์ข ์ข ์ฌ์ฉํ ์ ์์ ๊ฒ ๊ฐ๋ค !!