Как сделать, чтобы высота textarea уменьшалась при удалении текста?
Я сделал код, который расширяет нижнюю границу при добавлении текста:
var textarea = document.querySelector('textarea');
textarea.addEventListener('keyup', function(){
if(this.scrollTop > 0){
this.style.height = this.scrollHeight + "px";
}
});
Но обратное сделать не получается.
Ответы (1 шт):
Автор решения: c_k_rim
→ Ссылка
"keyup" не отработает, если вы с помощью контекстного меню (правой кнопкой мыши) вставите, скажем, текст в свой texatrea. Думаю, лучше подойдет event "input"
document.addEventListener('DOMContentLoaded', () => {
const textarea = document.querySelector('#someArea');
//Каждые 30 символов будем увеличивать\уменьшать высоту с шагом 20px
const heightStep = 20, heightPerSymbols = 30;
textarea.addEventListener('input', event =>
event.currentTarget.style.height = (Math.ceil(event.currentTarget.value.length / heightPerSymbols) * heightStep) + 'px'
);
})