javascript - 在视口空间中获取文本光标(插入符号)位置?
问题描述
是否可以获得插入符号的位置绝对屏幕空间位置?我的意图是隐藏插入符号并将其替换为可能在屏幕上“飞”的自定义组件。
解决方案
您可以使用 Selection API 获取插入符号位置,获取范围(collapsed==true
仅显示插入符号时)及其客户端矩形。
document.addEventListener('selectionchange', () => {
console.log(getSelection()?.getRangeAt(0)?.getClientRects()?.[0])
)
这些客户端矩形位于屏幕空间中,因此您可能还想跟踪文档滚动并再次获取矩形。
{x: 286.796875, y: 209, width: 0, height: 19, top: 209, …}
推荐阅读
- php - Laravel 5.6 | 水平显示列表项,而不是垂直显示
- c++ - 如果我只使用指向基类的指针,更改私有派生类会影响 ABI 吗?
- android - Oreo 不支持的字体
- mysql - 基于另一个表中的值从一个表的行进行完全外连接
- reactjs - h如何在react中操作数据
- python - matplotlib 中的渐变填充和颜色过渡
- uml - 如何在 UML 中表示作为多维数组的属性?
- python-3.x - Python 3 中不允许使用 urllib2 的方法
- php - Apache:错误 AH00557 和 AH00558 不会消失,PHP 无法正常工作
- c - 将结构指针初始化为空