纯 Javascript 中的元素坐标
假设我在 div 中有一个元素(或任何其他包含元素,或者可能只是在文档正文中)。如何获取该元素相对于其容器的 (x,y) 坐标?
我需要能够用纯 Javascript 来完成它......
Say that I have an element inside a div (or any other containing element, or perhaps just in the body of the document). How do I get the (x,y) coordinates of that element, relative to its container?
And I need to be able to do it in pure Javascript...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
offsetTop
和offsetLeft
属性是相对于offsetParent
的,因此您可以免费获取元素相对于其父元素的位置。如果您想要相对于整个body
的位置,那么您需要遍历offsetParent
链并对值求和。下面的函数可以完成这个任务:
The
offsetTop
andoffsetLeft
properties are relative tooffsetParent
so you can get an element's position relative to its parent for free. If you want the position relative to the entirebody
then you need to traverse theoffsetParent
chain and sum the values.The following function accomplishes this:
使用下面的
Use the below
脱离 ShankarSangoli 的帖子,它可以这样扩展。获取父级(容器)和子级(有问题的元素)之间的差异:
编辑:似乎我错了,offsetLeft 和 offsetTop 无论如何都是基于父级的。您不需要手动执行此操作!
Going off of ShankarSangoli's post, it can be expanded this way. Get the difference between the parent (container) and the child (element in question):
EDIT: seems I was mistaken, offsetLeft and offsetTop are based off of the parent anyway. You do not need to do this manually!