我有一篇很长的文本,我想为用户提供阅读帮助:当前行应该突出显示。为了更简单,我将只使用鼠标的 Y 坐标(这样,鼠标指针就不会妨碍)。我有一个带有 id 的大 DIVcontent
它用类填充整个宽度和一个小 DIVcontent
对于文本(请参阅此处的示例 http://www.pdark.de/haul/SceneFile-f446bc18-fdbc-42dd-bfde-2f501e2e7f73.html).
我正在使用 jQuery 1.4。如何突出显示最接近当前鼠标位置的文本行?
不确定 jQuery 是否会对您有很大帮助,但您可以看一下element.getClientRects
方法,记录于MSDN http://msdn.microsoft.com/en-us/library/ms536435(VS.85).aspx and MDC https://developer.mozilla.org/en/DOM:element.getClientRects。进一步来说,这个例子 http://samples.msdn.microsoft.com/workshop/samples/author/dhtml/refs/rectselection.htmMSDN 与您想要实现的目标有点相似,使用巧妙的 z 索引突出显示行div
位于由返回的坐标处的文本后面的元素getClientRects()
.
您应该能够通过循环遍历文档中返回的 TextRectangle 对象来实现相同的目的onmousemove
并检查鼠标光标的 y 值是否 > 每个矩形的顶部和
目前主流浏览器均支持getClientRects()
.
http://jsbin.com/avuku/15 http://jsbin.com/avuku/15
UPDATED- 在 Chrome、IE6/7/8、Firefox、Opera、Safari 中工作。我在其他浏览器中遇到的最初问题与DIV
需要成为display: inline
.
再次更新- 对于一些较新的问题,我必须参考此答案,因此我花时间更新它以重新计算窗口调整大小时的行。看起来其他人也在玩,现在已经是第 15 版了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)