2011-11-06 19 views
23

我想檢索從他自己的x中心座標開始的元素偏移量。如何查找元素的x中心座標和相關的窗口偏移

我該怎麼辦?

其實我能找到的窗口元素的偏移,但它從元素的這樣的邊界獲取座標:

var _position = $(this).offset(); 
+0

我不確定你想要得到什麼,你的元素中間位置而不是最左上角的位置?另外,$ position不是一個正確的語法,如果是這樣的話,只需將width/2添加到X,將height/2添加到height並且你很好。 –

+0

@ShaiMishali這是正確的語法。它完美的作品。在JavaScript中命名變量只是不符合慣例。 –

回答

51

你必須使用offset()獲得頂部和左側位置,然後加其中一半爲height()width()值。這給出了中心座標。

var $this = $(this); 
var offset = $this.offset(); 
var width = $this.width(); 
var height = $this.height(); 

var centerX = offset.left + width/2; 
var centerY = offset.top + height/2; 
+0

你知道如果width()負責填充css規則嗎? – sbaaaang

+6

不包括'padding'屬性。如果您還想包含填充,請使用'.outerWidth()'。 –

3

這現在可以通過本地JavaScript也可以做:

let centerX = targetNode.offsetLeft + targetNode.offsetWidth/2; 
let centerY = targetNode.offsetTop + targetNode.offsetHeight/2; 

其中targetNode是你想要得到它的中心座標的元素。

相關問題