λ¬Έμ
νμ΄μ§κ° λ‘λλ λ λ°μ΄ν°κ° μμΌλ©΄ μ΄λ₯Ό μΆλ ₯νκ³ , κ·Έ κΈΈμ΄μ λ§μΆ° textareaμ λμ΄λ₯Ό μλμΌλ‘ μ‘°μ νλ €κ³ νλ€.
μ΄λ₯Ό μν΄ μλ μ½λλ₯Ό μμ±νλ€.
window.onload = function(){
// κΈ°μ‘΄ λμ΄λ₯Ό autoλ‘ μ€μ νμ¬ λμ΄λ₯Ό μλ‘ κ³μ°νλλ‘ ν¨
textarea.style.height = 'auto';
// μλ‘μ΄ λμ΄ μ€μ
textarea.style.height = `${textarea.scrollHeight + 3}px`; // νμ μ μ¬μ 3px μΆκ°
}
νμ§λ§ μ΄λ κ² ν΄λ scrollHeightκ° 0μΌλ‘ κ³μ°λμ΄ λμ΄κ° μ λλ‘ μ‘°μ λμ§ μλ λ¬Έμ κ° λ°μνλ€.
ν΄κ²° λ°©λ²
λ‘λλ λ scrollHeightμ ꡬνλ κ² μλ, νμ΄ μ νλ μ scrollHeightμ ꡬνλλ‘ νμλ€.
1) setTimeout μ½λ°±ν¨μ μ¬μ©
λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ setTimeout μ½λ°±ν¨μλ₯Ό μ¬μ©ν΄ μ§μ°μ μ£Όμ΄ λ³΄μκ³ , 1500ms μ΄μμΌλ‘ μ€μ νμ λ κ°νΉ λμ΄κ° μ μμ μΌλ‘ κ³μ°λκΈ°λ νλ€.
κ·Έλ¬λ 1500μΌλ‘ μ£ΌκΈ°μ λ무 λλ¦° μλμλ€.
μ‘μμΌλ‘ textareaμ νμ΄ λ³νλκ² λ€ λ³΄μλ€.
κ·Έλ¦¬κ³ μ¬μ ν μμ μ μ΄μ§ μμ, μμΈμ νμ νκΈ° μν΄ μ¬λ¬ ν μ€νΈλ₯Ό ν΄λ³΄μλ€.
2) ν μ νμ textarea height autoλ‘ κ΅¬νκΈ°
κ·Έλ¬λ μ€, μ°μ°ν μ½λ°±ν¨μκ° μ€νλκΈ° μ μ, λ λ²μ§Έ νμΌλ‘ μ ννλ©΄ textareaμ λμ΄κ° μ νν κ³μ°λλ€λ κ²μ λ°κ²¬νλ€.
λ°λ©΄, 첫 λ²μ§Έ νμ κ³μ λ¨Έλ¬Όλ¬μμΌλ©΄ μ¬μ ν 0μΌλ‘ κ³μ°λμλ€.
첫 λ²μ§Έ νμ λ¨Έλ¬Όλ¬μλ κ²½μ°)
λ λ²μ§Έ νμ λ¨Έλ¬Όλ¬μλ κ²½μ°)
function openTab(tabName){
// ν μ΄κΈ°
// λ§μ½ λ λ²μ§Έ νμ΄λΌλ©΄ textarea λμ΄ μ‘°μ νλ ν¨μ μ€ννκΈ°
if(tabName ==='tab2'){
adjustTextareaHeightForAll();
}
}
function adjustTextareaHeightForAll(){
// .. μλ΅ ..
const textarea = document.querySelectorAll('[id*="desc"]');
textarea.style.height = 'auto';
textarea.style.height = `\${textarea.scrollHeight + 3}px`;
}
λ°λΌμ λ λ²μ§Έ νμ λλ μ λ textareaμ λμ΄λ₯Ό κ³μ°νλ λ°©μμΌλ‘ μ½λλ₯Ό λ³κ²½νλ€.
μ΄λ κ² νλ λ¬Έμ μμ΄ λμ΄κ° μ λλ‘ μ‘°μ λμλ€.
onload μμ λμ΄λ₯Ό κ³μ°νλ©΄ μ μ λλμ§ μ λͺ¨λ₯΄κ² λ€.
DOMμ΄ μμ ν λ‘λλμ§ μμμ μκΈ΄ λ¬Έμ μΈμ§, λ€λ₯Έ μ΄μ κ° μλμ§ νμ€νμ§ μλ€.
μλ§ κΈ°λ³Έμ΄ Tab1μ΄λΌ Tab1μ λ΄μ©μ΄ νμκ° λλ λ°λ©΄, Tab2λ λ΄μ©μ΄ νμλκΈ° μ μΈ μνμ΄λ€.
μ΄ μν©μμ heightμ μ‘μΌλ €κ³ νλ 0μ΄ λ¬ κ² κ°λ€.
μ¬μ©μκ° ν΄λ¦νμ§ μμΌλ©΄ λ΄μ©μ΄ νμλμ§ μμΌλ―λ‘ onload μ ν¨μλ₯Ό μ¬μ©νλ κ² λ³΄λ¨, Tab μ νμμ ν¨μλ₯Ό μ¬μ©νλ κ²μ΄ λ λ°λμ§ν΄λ³΄μΈλ€.
'πΏππππππππππ π»πππππππ > πΉπππππππππ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[JavaScript] ==μ ===μ μ°¨μ΄ | λμ¨ν λΉκ΅μ μ격ν λΉκ΅ (0) | 2025.03.13 |
---|---|
[JavaScript] ES6 κ°μ²΄ 리ν°λ΄ λ¨μΆ νκΈ°λ²(Object Property Shorthand) (0) | 2025.03.11 |
[JavaScript] μ½λ°±(Callback)ν¨μλ (0) | 2025.03.09 |
[Javascript] Array.prototype.every()λ every() ν¨μ μ¬μ©λ² (0) | 2025.03.07 |
[JavaScript] λ κ°μ λ°°μ΄ ν©μΉλ λ°©λ² (0) | 2025.03.05 |