38_Mobile Tab Navigation
๐ป์ฃผ์ : ๋ชจ๋ฐ์ผ ํญ๋ฐ๋ฅผ ํด๋ฆญ์ ์ด๋ฏธ์ง๊ฐ ๋ฐ๋
const contents = document.querySelectorAll('.content')
const listItems = document.querySelectorAll('nav ul li')
listItems.forEach((item, idx) => {
item.addEventListener('click', () => {
hideAllContents()
hideAllItems()
item.classList.add('active')
contents[idx].classList.add('show')
})
})
function hideAllContents() {
contents.forEach(content => content.classList.remove('show'))
}
function hideAllItems() {
listItems.forEach(item => item.classList.remove('active'))
}
listItems.forEach((item, idx) => { ... })
listItems์ ๋ํด ๋ฐ๋ณต๋ฌธ์ ์คํํ๋ค.
item์ ๊ฐ๊ฐ์ <li>
์์๋ฅผ ์๋ฏธํ๊ณ , idx๋ ํ์ฌ ์์์ ์ธ๋ฑ์ค๋ค.
item.addEventListener('click', () => { ... })
๋ชจ๋ contents ์์๋ฅผ ์จ๊ธฐ๋ ํจ์์ธ hideAllContents()๋ฅผ ํธ์ถํ๋ค.
hideAllContents() ํจ์๋ contents ๋ฐฐ์ด์ ๋ํด ๋ฐ๋ณต๋ฌธ์ ์คํํ์ฌ ๊ฐ ์์์ "show" ํด๋์ค๋ฅผ ์ ๊ฑฐํ๋ค.
๋ชจ๋ listItems ์์๋ฅผ ์จ๊ธฐ๋ ํจ์์ธ hideAllItems()๋ฅผ ํธ์ถํ๋ค.
hideAllItems() ํจ์๋ listItems ๋ฐฐ์ด์ ๋ํด ๋ฐ๋ณต๋ฌธ์ ์คํํ์ฌ ๊ฐ ์์์ "active" ํด๋์ค๋ฅผ ์ ๊ฑฐํฉ๋๋ค.
item.classList.add('active')
ํ์ฌ ํด๋ฆญ๋ <li>
์์์ "active" ํด๋์ค๋ฅผ ์ถ๊ฐํ๋ค.
contents[idx].classList.add('show')
contents ๋ฐฐ์ด์์ idx์ ํด๋นํ๋ ์ธ๋ฑ์ค์ ์์์ "show" ํด๋์ค๋ฅผ ์ถ๊ฐํ๋ค.