光标在编辑器中行为异常——当我上下移动它时它会消失

当您按向上/向下箭头移动光标时,光标有时会消失半秒,让您不禁想——光标在哪里?我是否已向上/向下移动足够?我是否在正确的行上?
光标实际上并没有消失,它会以正确的间隔继续闪烁。但它目前的实现方式与文本编辑器、浏览器输入框、IDE 等其他地方的实现方式不同。

比较一下。
这是 Discourse 中的光标:

请注意,我可以轻松地快速按两次向上或向下按钮,使光标在空行上消失。这让我感觉光标消失了,我无法精确控制它。

以 JSFiddle 为例,比较一下光标的工作方式:

注意:无论我按向上/向下按钮的速度有多快,光标始终可见,因为它会在不同行之间移动。换句话说,当光标移动到另一行时,闪烁会“重置”。

希望这两个视频能清楚地解释这个问题,并使其成为一个易于考虑的修复问题。

是的,Firefox 错误。

在 Linux 上见过,但在 Windows 上没注意到。

参见:

参见:226301 - text cursor disappears sporadically with css scale down

但是等等,我的第二个视频也是在 Firefox 中录制的,而且没有这样的问题。另外,我确切地知道重现步骤,它不像您链接的报告中那样“偶尔”消失。这是因为 jsfiddle 使用自己的光标渲染机制,而 Discourse 使用默认的 textarea,因此会受到默认光标 Firefox 行为的影响吗?

JSFiddle 不使用 TEXTAREA,它使用的是 contenteditable HTML 元素,TEXTAREA 不支持所有这些高亮显示。

建议您在链接的 Firefox bug 上发帖,看起来和您看到的一模一样。

1 个赞