30_Auto Text Effect
π»μ£Όμ : μλ νμ΄ν ν¨κ³Ό (μλμ‘°μ λ κ°λ₯)
const textEl = document.getElementById('text')
const speedEl = document.getElementById('speed')
const text = "We Love Programming"
let idx = 1
let speed = 300 / speedEl.value
writeText()
function writeText() {
textEl.innerText = text.slice(0, idx)
idx++
if(idx > text.length) {
idx = 1
}
setTimeout(writeText, speed)
}
speedEl.addEventListener('input', (e) => speed = 300 / e.target.value)
- let speed = 300 / speedEl.value
μ λλ©μ΄μ
μλλ₯Ό λνλ΄λ λ³μ speedλ₯Ό μ μΈνκ³ , speedEl μμμ κ°μ λ°λΌ μ΄κΈ°ννλ€. speedElμ input μμλ‘ μ¬μ©μκ° μλλ₯Ό μ νν μ μλ μμλ€.
- writeText()
ν
μ€νΈλ₯Ό ν κΈμμ© μΆλ ₯νλ μ λλ©μ΄μ
μ ꡬννλ ν¨μ
- textEl.innerText = text.slice(0, idx)
textEl μμμ innerText μμ±μ μ¬μ©νμ¬ νμ¬κΉμ§ μΆλ ₯λ ν
μ€νΈλ₯Ό μ€μ νλ€.
text.slice(0, idx)λ text λ³μμμ 0λΆν° idx μ§μ κΉμ§μ λΆλΆ λ¬Έμμ΄μ κ°μ Έμ¨λ€.
idx++: idx κ°μ 1 μ¦κ°μν¨λ€.
- if(idx > text.length) { idx = 1 }
idx κ°μ΄ textμ κΈΈμ΄λ³΄λ€ ν¬λ©΄ idxλ₯Ό 1λ‘ μ¬μ€μ νλ€. -> ν
μ€νΈκ° ν λ°ν΄λ₯Ό λλ©΄μ λ°λ³΅λκ² λλ€.
- setTimeout(writeText, speed)
writeText ν¨μλ₯Ό speed λ°λ¦¬μ΄ νμ νΈμΆνλ€. μ΄λ κ² ν¨μΌλ‘μ¨ ν
μ€νΈκ° ν κΈμμ© μΆλ ₯λλ μλλ₯Ό μ μ΄ν μ μλ€.
- speedEl.addEventListener('input', (e) => speed = 300 / e.target.value)
speedEl μμμ 'input' μ΄λ²€νΈ 리μ€λλ₯Ό μΆκ°νλ€. μ¬μ©μκ° μλλ₯Ό μ νν λλ§λ€ νΈμΆλλ μ½λ°± ν¨μμμ speed κ°μ κ°±μ νλ€.
300 / e.target.valueλ μ¬μ©μκ° μ νν μλμ λ°λΌ μ λλ©μ΄μ
μλλ₯Ό μ‘°μ νκΈ° μν κ³μ°μ