我想获取一个字符的宽度,以便计算字符串中任何给定字符(以像素为单位)的位置。我认为这很容易,因为我正在使用等宽字体,但我有一个问题。
我已经尝试了这个答案中提出的建议,但是对于较长的字符串,这并不起作用。精度太差了,这意味着它可以工作,并且我可以获得字符串中前几个字符的位置,但在10个字符之后,精度非常差,以至于我得到的字符位置偏离实际位置太远,实际上是给出前一个字符的位置。
我想做的是获取一个字符的宽度,以便我可以像这样编写代码:
我已经尝试了这个答案中提出的建议,但是对于较长的字符串,这并不起作用。精度太差了,这意味着它可以工作,并且我可以获得字符串中前几个字符的位置,但在10个字符之后,精度非常差,以至于我得到的字符位置偏离实际位置太远,实际上是给出前一个字符的位置。
我想做的是获取一个字符的宽度,以便我可以像这样编写代码:
var charWidth = ???;
var position = 5; // Shuold get the position of the fifth character in the string
var calculatedPosition = charWidth * position;
9.6px
(根据 Chrome 开发工具),但是clientWidth
返回 10px。所以它大致准确,但在较长的字符串中会出现问题。https://codepen.io/mcoker/pen/ybEyrL - Michael Coker.childNodes()
呢?它很准确,因为它不关心宽度、字体或字符,它只关心节点(例如元素、文本等...)。 - zer00ne