jQuery/Javascript检查文本重叠
jQuery/Javascript Check for text-Overlap
我想知道是否有什么好方法可以检查两个html元素的文本是否重叠?Carifization:检查元素之间的重叠是没有问题的。我想检查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;
}
您可以使用Element.getClientRects()方法来完成此操作,该方法返回一组矩形,这些矩形指示客户端中每个框的边界矩形。
返回的值是ClientRect对象的集合,与元素相关联的每个CSS边框都有一个对象。每个ClientRect对象都包含描述边框的只读左、上、右和下属性,以像素为单位,左上角相对于视口的左上角。对于带有标题的表,即使标题在表的边框框之外,也会包含该标题。
相关文章:
- 如何使用jquery在填充自动完成的值后使文本框只读
- 使用Clipboard.js复制span文本
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 用程序搜索JQuery数据表中的文本
- jQuery匹配JSON对象的部分文本
- onkeyup无法动态创建多个文本区域
- 如何在下面的ES6循环中获得前面的文本
- HighCharts长标题文本在某些元素上重叠
- createjs动态文本重叠
- 如何使用setInterval和fillStyle修复文本重叠
- Svg文本元素被另一个Svg元素重叠
- jQuery/Javascript检查文本重叠
- MVC5 - 检查用于搜索日期字段的 2 个日期(文本框)之间的重叠
- 为什么图像和文本在我的对话框中重叠
- 仅在Internet Explorer中存在文本重叠问题
- Pixi.js中的文本出现重叠
- 具有重叠文本范围的解决方案
- 在javascript中创建重叠的文本跨度
- 如何使跨度重叠文本在td
- 如何避免文本重叠在html5画布