防止文本区域在我更改光标位置时自动滚动

Prevent textarea from automatically scrolling when I change cursor position

我有一个包含大量文本和垂直滚动条的文本区域。当我将光标移动到可见区域之外时(假设有一个长文档,然后多次按下向下箭头直到光标离开屏幕),浏览器会自动将光标滚动到可见区域,因此它始终保持可见。

如何防止这种行为?我需要能够将光标移动到可见区域之外,而不会自动滚动。

(从技术上讲,它不是一个文本区域,而是一个基于 React 的文本编辑器,在 dom 中它是一个 div,content-editable 设置为 true,不确定它是否重要)

这似乎不可能。来自规范:

It MUST be possible to put the caret in any of the Legal Caret Positions programatically and for the caret to be visible in these in any editing host that is in the "events", "caret" or "typing" state.

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

"MUST put the caret" & "MUST be visible" 表示。