Javascript 如何找到元素';s x中心坐标和相关窗口偏移

Javascript 如何找到元素';s x中心坐标和相关窗口偏移,javascript,jquery,coordinates,center,offset,Javascript,Jquery,Coordinates,Center,Offset,我想从他自己的x中心坐标开始检索元素偏移量 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; 我怎么做 实际上,我可以找到元素的窗口偏移量,但它从元素的边界检索坐标,如下所示:

我想从他自己的x中心坐标开始检索元素偏移量

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;
我怎么做

实际上,我可以找到元素的窗口偏移量,但它从元素的边界检索坐标,如下所示:

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

您必须使用
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;

如果您需要在计算中考虑填充属性,请使用以下内容:

var width = $this.outerWidth();
var height = $this.outerHeight();

现在也可以通过本机Javascript完成此操作:

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

其中targetNode是您想要获取其中心坐标的元素。

我不确定您想要获取的是什么,元素的中间位置,而不是最左边的顶部?另外,$position不是正确的语法,如果是这样,只需在X上加上width/2,在height上加上height/2,就可以了。@ShaiMishali这是正确的语法。它工作得很好。在JavaScript中这样命名变量并不是惯例。您知道width()是否负责填充css规则吗?不包括
padding
属性。如果还希望包含填充,请使用
.outerWidth()
。这仅计算出相对于targetNode的OffsetParent的中心。任何非静态(默认)定位的父元素(一直到树上)都会影响此操作。此方法返回svg对象中未定义的
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;