2013-10-29 88 views
2

如何獲取DOM中兩個元素之間的距離?DOM中兩個元素之間的距離(以像素爲單位)

我正在考慮使用getBoundingClientRect,但我沒有看到如何使用它來計算兩個元素之間的距離。所以,舉個例子,離一個人有多近。

+0

你試圖找到這兩個元素的左上邊角之間的區別? –

+0

我實際上正在尋找找到距離的最佳方式。我不知道是否找到兩個元素左上角的區別。理想情況下,這兩個元素的中心不是? –

+0

取決於你的最終目標是什麼。但我會根據這個答案 –

回答

3

假裝你有一個ID爲div1的div和一個ID爲div2的div。你可以從計算的div1距離(以像素爲單位)的中心div2的中心,一些簡單的數學...

// get the bounding rectangles 
var div1rect = $("#div1")[0].getBoundingClientRect(); 
var div2rect = $("#div2")[0].getBoundingClientRect(); 

// get div1's center point 
var div1x = div1rect.left + div1rect.width/2; 
var div1y = div1rect.top + div1rect.height/2; 

// get div2's center point 
var div2x = div2rect.left + div2rect.width/2; 
var div2y = div2rect.top + div2rect.height/2; 

// calculate the distance using the Pythagorean Theorem (a^2 + b^2 = c^2) 
var distanceSquared = Math.pow(div1x - div2x, 2) + Math.pow(div1y - div2y, 2); 
var distance = Math.sqrt(distanceSquared); 
+2

這個答案是使用jQuery ...但是如果你不想使用jQuery,你可以用'var div1rect = document.getElementById(「div1」)替換前兩行。getBoundingClientRect( );'...... etc –

+0

我基本上需要距離來估計網站上的「價格」可能是網站產品的價格。我想計算產品圖片(我知道它在哪裏)與頁面周圍的所有價格之間的距離。與產品圖片最接近的價格可能是該產品的價格:) –

+0

此代碼是否可用? –

相關問題