javascript - jQuery/Javascript 检查文本重叠

标签 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 对象。

编辑: 我想说的是,我可以检测元素的边界是否相交,但在文本的情况下,每个字符上方和下方的大部分空间可能是“未使用的”。

最佳答案

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;
}

关于javascript - jQuery/Javascript 检查文本重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28361758/

相关文章:

javascript - 没有从第二个 onchange 调用复选框回调函数

html - R:使用 rvest 抓取动态链接

javascript - 如何从 HTML 按钮中删除效果?

javascript - 在 Javascript 中使用 jSTL

javascript - 在 Gatsby 站点中集成 Drift 聊天服务

javascript - 查找客户的大致物理位置

HTML 中的 JavaScript 值与 JQuery

html - 在某些页面上显示页脚

javascript - 如何使用 Javascript 更改下拉组合框值

JavaScript 对象定位碰撞逻辑