`
coolsooner
  • 浏览: 1311145 次
文章分类
社区版块
存档分类
最新评论

JavaScript获取文本框光标的像素位置

 
阅读更多

【简介】本文主要实现获取textarea和input光标的像素位置,即光标的offsetLeft与offsetTop。可实现如下效果:


首先说明一下,在网上搜到的很多代码是如何获取输入光标位置的如下代码是如何获取光标的的字符位置,如对于串“He|llo World!”返回的是光标|前的字符数2,并不是光标在页面上的像素位置。当然,这段代码对于获取光标的像素位置能起到一定的辅助作用。

对于IE浏览器,通过下面的代码1实现起来比较方便。

而对于firefox之类的浏览器则通过模拟来实现,如下图所示。首先通过拷贝输入区域的样式到一个div层(clone层),然后在此clone层之中的text子层添加光标之前的字符,并在text子层之后添加focus层,focus层中包含字符“|”来模拟光标,进而通过获取focus层的偏移量即可获得文本光标的像素坐标位置。

具体实现代码如下:

测试页面如下:


分享到:
评论
1 楼 zhiquanliu 2013-06-25  
这个代码对于IE浏览器是有问题的 , 当按住ctrl 滚动滚轮 放大浏览器 或者所谓浏览器的时候  tips 的位置就不对了,    google ,firefox 等浏览器 就不会存在这个问题

相关推荐

Global site tag (gtag.js) - Google Analytics