已知 getBoundingClientRect()能够获取dom元素的大小及其相对于视口的位置,咱们能够通过该方法取得文本相对于视口中的位置,但文本中的指定文字要怎么获得呢?
我想到的办法是通过替换文本给指定文字附上标签生成dom,通过getBoundingClientRect()方法获取到坐标后再把文本还原
可这种办法在处理量大时在性能方面不是很好吧,请问有没有更好的解决方案?
给指定文字附上标签是个方法
如果文字是等宽字体的也可以通过文字所在行列位置来计算。
document.getElementById("");获取文本内容
就是
y坐标 = 文字所在行数 * 行高 + 父容器getBoundingClientRect()获取的y坐标
x坐标 = 文字所在列数 * 字宽 + 父容器getBoundingClientRect()获取的x坐标
这种方法必须用等宽字体,并且一个汉字必须等于两个英文的宽度, 一个汉字按两列计算
您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!
速戳参与调研>>>https://t.csdnimg.cn/Kf0y