Javascript 如何找到元素的x中心坐标和相关的窗口偏移量
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/8027875/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
How to find the element's x center coordinates and related window offset
提问by itsme
i would like to retrieve the element offset starting from his own x center coordinates.
我想从他自己的 x 中心坐标开始检索元素偏移量。
how can i do it?
我该怎么做?
Actually i can find the window offset of an element but it retrieves the coordinates from the border of the element like this:
实际上我可以找到一个元素的窗口偏移量,但它从元素的边框中检索坐标,如下所示:
var _position = $(this).offset();
回答by Rob W
You have to use offset()to get the top and left position, then add half of the height()and width()values to them. That gives the center coordinates.
您必须使用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;
If you need to consider the padding property in your calculations, use the following:
如果您需要在计算中考虑 padding 属性,请使用以下内容:
var width = $this.outerWidth();
var height = $this.outerHeight();
回答by Strategist
This can now be done through native Javascript also:
这现在也可以通过本机 Javascript 完成:
let centerX = targetNode.offsetLeft + targetNode.offsetWidth / 2;
let centerY = targetNode.offsetTop + targetNode.offsetHeight / 2;
where targetNode is the element you want to get its center coordinates.
其中 targetNode 是您想要获取其中心坐标的元素。

