43_Feedback UI Design
π» μ£Όμ : μΈ κ°μ§ μ νμ§ μ€ νλλ₯Ό μ νν΄ λ¦¬λ·°λ₯Ό 보λ΄λ©΄ κ°μ¬λ΅μ₯μ΄ λμ€λ νΌλλ°± μΉ΄λ
ratingsContainer.addEventListener('click', (e) => {
//eλ‘ μ€μ νλ©΄ ν΄λ¦λ μμλ₯Ό λνλ(e.target)
//rating ν΄λμ€(λΆλͺ¨) μμ μλ imgλ₯Ό μ»μ΄μΌ νκΈ° λλ¬Έμ parentNodeλ₯Ό μ
if(e.target.parentNode.classList.contains('rating')) {
removeActice()
e.target.parentNode.classList.add('active')
selectedRating = e.target.nextElementSibling.innerHTML
}
})
function removeActice() {
for(let i=0; i<ratings.length; i++) {
ratings[i].classList.remove('active')
}
}
sendBtn.addEventListener('click', (e) => {
panel.innerHTML = `
<i class="fas fa-heart"></i>
<strong>κ°μ¬ν©λλ€!</strong>
<br>
<strong>μ견 : ${selectedRating}</strong>
<p>κ³ κ° μ§μ ν₯μμ μν΄ κ·νμ μ견μ λ°μνλλ‘ νκ² μ΅λλ€.</p>
`
})
ν΄λ¦λ μμμ λν μ λ³΄κ° μ΄λ²€νΈ κ°μ²΄ eλ‘ μ λ¬λλ€.
ifλ¬Έ : ν΄λ¦λ μμκ° "rating" ν΄λμ€λ₯Ό κ°μ§κ³ μλμ§ νμΈνλ€.
λ§μ½ ν΄λ¦λ μμμ λΆλͺ¨ μμμ "rating" ν΄λμ€κ° μλ€λ©΄, μ΄ μμλ "rating" ν΄λμ€λ₯Ό κ°λ μμμΌ κ²μ΄λ€.
removeActice(): μ΄ ν¨μλ νμ±νλ "rating" ν΄λμ€λ₯Ό κ°λ λͺ¨λ μμμμ "active" ν΄λμ€λ₯Ό μ κ±°νλ€.
e.target.parentNode.classList.add('active'):
ν΄λ¦λ μμκ° "rating" ν΄λμ€λ₯Ό κ°λ κ²½μ°, μ΄ μμμ λΆλͺ¨ μμ(κ°μ₯ κ°κΉμ΄ "rating" ν΄λμ€λ₯Ό κ°λ μ‘°μ μμ)μ "active" ν΄λμ€λ₯Ό μΆκ°νλ€.
selectedRating = e.target.nextElementSibling.innerHTML:
ν΄λ¦λ μμκ° "rating" ν΄λμ€λ₯Ό κ°λ κ²½μ°, ν΄λΉ μμμ λ€μ νμ μμμ λ΄μ©(small νκ·Έμ ν
μ€νΈλ₯Ό μ μ₯)μ selectedRating λ³μμ μ μ₯νλ€.
function removeActice() { ... }
"rating" ν΄λμ€λ₯Ό κ°λ μμ μ€ λͺ¨λ μμμμ "active" ν΄λμ€λ₯Ό μ κ±°νλ€. for 루νλ₯Ό μ¬μ©νμ¬ ratings λ°°μ΄μ μλ λͺ¨λ μμμ λν΄ "active" ν΄λμ€λ₯Ό μ κ±°νλ€. μ΄ ν¨μλ μ΄μ μ μ νλ λ±κΈμ μ§μ°κ³ , μλ‘ μ νλ λ±κΈλ§ "active" ν΄λμ€λ₯Ό κ°λλ‘ νλ λ° μ¬μ©λλ€.