Нужно создать поле для ввода текста которое будет автоматически увеличиваться вместе с набранным текстом (по высоте). Использовать textarea нельзя, тк там есть странный угол который никак не вписывается в дизайн.
Подобная вещь реализована в telegra.ph.
Чтобы убрать странный угол, задайте resize: none
const textarea = document.getElementById('textarea');
// Учитываем padding
const padding = textarea.offsetHeight - textarea.clientHeight;
textarea.oninput = e => {
// Схлопываем
textarea.style.height = 'auto';
// Расхлопываем
textarea.style.height = textarea.scrollHeight + padding + 'px';
}
textarea{
resize: none; /* Убираем "Странный угол" */
}
<textarea id='textarea'></textarea>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>contenteditable</title>
<style>
div.d1 {
border: 1px solid black;
}
</style>
</head>
<body>
<div class="d1">
<div contenteditable="true">This is a sample</div>
</div>
</body>
</html>
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Пытаюсь через dispatchEvent послать событие так, чтобы React его обработал, но по какой-то причине обработчик onChange в реакте не вызывается, хотя все...
Как изменить js код так, чтобы по истечении 59 секунд счетчик не замирал на 0 секунде, а начинал заново?