Курсор прыгает в textarea когда установлена автовысота
Добавляю автоматическую высоту в текстэрию, ввожу много текста и возникает проблема с курсором. Курсор перемещается вверх и вниз при нажатии любой клавиши внутри текста, добавленного в тексэрию.
Удалось добиться того, чтобы курсор переносился только вниз
Но как добиться того, чтобы курсор вообще не прыгал и оставался на прежнем месте?
set autoheight(value) {
this.#autoheight = Boolean(value);
if (!this.#textarea.isConnected) return;
if (this.#autoheight) {
this.#textarea.style['overflow-y'] = 'hidden';
this.#textarea.style.height = this.#minHeightTA > this.#textarea.scrollHeight
? this.#minHeightTA + 'px'
: this.#textarea.scrollHeight + 'px';
this.#textarea.addEventListener('input', this.#handleTextareaInput);
} else {
this.#textarea.style['overflow-y'] = '';
this.#textarea.style.height = '';
this.#textarea.removeEventListener('input', this.#handleTextareaInput);
}
}
#handleTextareaInput = () => {
const startPos = this.#textarea.selectionStart;
const endPos = this.#textarea.selectionEnd;
this.#textarea.style.height = 0;
this.#textarea.style.height = this.#minHeightTA > this.#textarea.scrollHeight
? this.#minHeightTA + 'px'
: this.#textarea.scrollHeight + 'px';
this.#textarea.setSelectionRange(startPos, endPos);
}