以下是一种方法,它可以计算两个元素之间的距离,需要遍历所有元素:

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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录