获取两个元素之间的距离 代码 遍历所有元素
以下是一种方法,它可以计算两个元素之间的距离,需要遍历所有元素:
function getDistance(element1, element2) {
var rect1 = element1.getBoundingClientRect();
var rect2 = element2.getBoundingClientRect();
var distanceX = rect1.left - rect2.left;
var distanceY = rect1.top - rect2.top;
return Math.sqrt(distanceX * distanceX + distanceY * distanceY);
}
function getClosestElement(targetElement, elements) {
var closestElement = null;
var closestDistance = Infinity;
for (var i = 0; i < elements.length; i++) {
var distance = getDistance(targetElement, elements[i]);
if (distance < closestDistance) {
closestDistance = distance;
closestElement = elements[i];
}
}
return closestElement;
}
getDistance 函数获取两个元素的矩形边界,并计算它们之间的水平和垂直距离。然后,使用勾股定理计算它们之间的距离。
getClosestElement 函数接受一个目标元素和一个元素数组,并遍历该数组以查找最接近目标元素的元素。它使用 getDistance 函数来计算每个元素与目标元素之间的距离,并跟踪最小距离和相应的元素。最后,它返回最接近的元素。
原文地址: https://www.cveoy.top/t/topic/65E 著作权归作者所有。请勿转载和采集!