jQuery / Javascript检查文本重叠

时间:2015-02-06 08:45:51

标签: javascript jquery html css

我想知道是否有任何好方法可以检查两个html元素的文本是否重叠? Carification:检查元素之间的重叠是没有问题我想检查2个元素重叠内的实际文本。

说我有元素

<span id="green">Green is my cÔlor</span>
<span id="blue">blue is my color</span>

我怎样才能检查这两个元素的文本是否重叠? 我们可以假设我可以访问给定元素的jQuery对象。

编辑: 我想说的是,我可以检测到元素的边界是否会被拦截,但是在文本的情况下,每个角色上方和下方的空间的大部分可能是未使用的&#34 ;

2 个答案:

答案 0 :(得分:2)

function getPositions(elem) {
    var clientRect = elem.getBoundingClientRect();
    return [
        [ clientRect.left, clientRect.left + clientRect.width ],
        [ clientRect.top, clientRect.top + clientRect.height ]
    ];
}


function intersect(elemA, elemB) {
    var posA = getPositions(elemA),
        posB = getPositions(elemB),
        isOverlap = false;

    if (posA[0][0] < posB[0][1] && posA[0][1] > posB[0][0] &&
        posA[1][0] < posB[1][1] && posA[1][1] > posB[1][0])
        isOverlap = true;

    return isOverlap;
}

答案 1 :(得分:1)

您可以使用Element.getClientRects()方法执行此操作,该方法返回一组矩形,指示客户端中每个框的边界矩形。

返回的值是ClientRect对象的集合,每个对应于该元素的CSS边框框。每个ClientRect对象包含描述边框的只读左,上,右和底属性(以像素为单位),左上角相对于视口的左上角。对于带有字幕的表格,即使字幕位于表格的边框内,也会包含字幕。