我想知道一个角色在div中的位置。
例如

<div>This is a very long multi-line text that overflows and wraps<div>

我想找到字符在位置24的绝对x和y位置(即“-”)。有可能吗?

最佳答案

有一种方法可以在不使用元素包装文本的情况下获得纯JavaScript中的文本偏移位置:

var characters = document.querySelector('.characters');
var charactersText = characters.textContent;
var charAtIndex = 25;
var offsetPosition;

characters.textContent = '';
for (var i = 0; i < charactersText.length; i++) {
    var textNode = document.createTextNode(charactersText[i]);
    characters.appendChild(textNode);
    if (i === charAtIndex) {
        var range = document.createRange();
        range.selectNodeContents(textNode);
        var rects = range.getClientRects();
        offsetPosition = {
            left: rects[0].left,
            top: rects[0].top
        };
    }
}

alert(JSON.stringify(offsetPosition, null, 2));

<div class="characters">This is a very long multi-line text that overflows and wraps</div>

关于jquery - 获取字符在特定索引处的位置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29186964/

10-13 05:23