Запретить автоматическую прокрутку текстовой области при изменении положения курсора

У меня есть текстовая область с большим количеством текста и вертикальной полосой прокрутки. Когда я перемещаю курсор за пределы видимой области (представьте, что у вас длинный документ, а затем нажимайте стрелку вниз, пока курсор не исчезнет с экрана), браузер автоматически прокручивает курсор в поле зрения, поэтому он всегда остается видимым.

Как я могу предотвратить это поведение? Мне нужно иметь возможность перемещать курсор за пределы видимой области, без автоматической прокрутки.

(технически это не текстовая область, а текстовый редактор на основе React, в DOM это div с content-editable установленным в true, не уверен, если это имеет значение)

1 ответ

Решение

Похоже, это невозможно. Из спецификации:

ДОЛЖНА быть предусмотрена возможность поместить каретку в любую из позиций легальной каретки программно, чтобы каретка была видна в ней на любом узле редактирования, находящемся в состоянии "события", "каретка" или "ввод".

https://w3c.github.io/editing/contentEditable.html

"ДОЛЖЕН поставить каретку" и "ДОЛЖЕН быть видимым" указывают на это.

Другие вопросы по тегам