我有两个DIV,我需要知道它们之间在浏览器中的距离(高度)。
我已经了解了offset特性,但是例子都不适用于我的情况。
示例用法:
示例用法:
<div class="foo"></div>
<div class="bar"></div>
我想知道这两者之间的距离。
请帮我使用jQuery动态查找距离。
<div class="foo"></div>
<div class="bar"></div>
我想知道这两者之间的距离。
请帮我使用jQuery动态查找距离。
这样应该可以工作:
$('.foo').offset().top - $('.bar').offset().top
.offset.top
,应该改为 .offset().top
。 - Axel这个函数在没有使用jQuery的情况下,找到两个元素中心之间的像素距离:
function distanceBetweenElems(elem1, elem2) {
var e1Rect = elem1.getBoundingClientRect();
var e2Rect = elem2.getBoundingClientRect();
var dx = (e1Rect.left+(e1Rect.right-e1Rect.left)/2) - (e2Rect.left+(e2Rect.right-e2Rect.left)/2);
var dy = (e1Rect.top+(e1Rect.bottom-e1Rect.top)/2) - (e2Rect.top+(e2Rect.bottom-e2Rect.top)/2);
var dist = Math.sqrt(dx * dx + dy * dy);
return dist;
}
var target1 = document.querySelector('#foo');
var target2 = document.querySelector('#bar');
if (distanceBetweenElems(target1,target2)<100){
target1.classList.add('active');
}
(e1Rect.left+(e1Rect.right-e1Rect.left)/2)
可以简化为 (e1Rect.left + e1Rect.right) / 2
- 毕竟,中心就是左右边缘的平均值。 - Simon MᶜKenzie