gpt4 book ai didi

javascript - 计算文本选择的 xy 位置

转载 作者:太空宇宙 更新时间:2023-11-04 14:18:56 31 4
gpt4 key购买 nike

我正在尝试使用 DOM 元素创建我自己的文本选择。是的,我的意思是当您在此元素中选择它时,您在文本后面看到的蓝色背景。我的想法是停止默认行为(蓝色)并使用我自己的元素来完成这项工作,方法是找到选择的 xy 位置,然后放置绝对定位的元素。我希望能够使用常规的 div 执行此操作。

我想我需要 3 个元素。一个用于顶行(可能不完整),一个用于中间 block ,​​一个用于最后一行(与顶部相同)。这是一张可以帮助您理解的图像: Image showing the needed selection elements

我一直在考虑捕捉 mouseup/down 然后 mousemove 然后检查 window.getSelection() 但到目前为止我'我无法到达任何地方。

使用 CSS ::selection 将不起作用,因为该元素将没有焦点。

我感谢所有能得到的帮助!提前致谢。

编辑:偶然发现https://code.google.com/p/rangy/这可能有帮助?有没有人使用过这个插件?

编辑2:需要跨浏览器支持。

最佳答案

您可以使用 getClientRnge:

var element = document.getElementById('element')

element.onmouseup = function(){
var selection = document.getSelection(),
range = selection.getRangeAt(0),
clientRects = range.getClientRects()

console.log(clientRects)
}

http://jsfiddle.net/XjHtG/

这将返回所有选择的左、右、上、下、宽度和高度。

关于javascript - 计算文本选择的 xy 位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17566323/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com