Javascript Div在另一Div中的相对位置
如何获取Div相对于其父Div的位置?使用Javascript Div在另一Div中的相对位置,javascript,jquery,html,position,Javascript,Jquery,Html,Position,如何获取Div相对于其父Div的位置?使用.position()和.offset()总是给我它在文档中的位置 HTML: <div id="frame"> <div id="inner"></div> </div> CSS: <div id="frame"> <div id="inner"></div> </div> 假设frame以margin:auto为中心和宽度:1024
.position()
和.offset()
总是给我它在文档中的位置
HTML:
<div id="frame">
<div id="inner"></div>
</div>
CSS:
<div id="frame">
<div id="inner"></div>
</div>
假设frame
以margin:auto为中心代码>和宽度:1024px
内部
具有左侧:300px代码>,顶部:200px
和位置:相对代码>
我想要什么:
<div id="frame">
<div id="inner"></div>
</div>
用于获取内部
的位置数据300
和200
(例如,在使用.css('left')
等时,不使用px
)的良好功能
有什么吗?如果给父对象一个“相对”的“位置”,那么使用.position()
应该是它在父对象内部的位置
使用.offset
实际上应该始终根据文档
给出其位置,而使用.position
根据其第一个父项给出其“位置”,其“位置”不是“静态”(默认)
以下是一些例子:
第一个示例使用
在容器顶部添加空间,而第二个示例使用padding top
在容器顶部添加空间。这两个示例都返回一个大于子对象top
位置的值
唯一的问题是,position
在计算子元素的位置时没有考虑子元素的边距、填充和边框。这是因为所有这些都是元素的一部分,所以即使您可能看不到它们,它们也不会包含在元素的位置计算中。当然,这取决于具体的内容要查看其位置的元素的一部分,需要将其添加到.position
的结果中。有些人希望“position”返回到边框的左上角位置,这意味着添加边距。如下所示:
如果给父对象一个“相对”的“位置”,那么使用.position()
应该是它在父对象内部的位置
使用.offset
实际上应该始终根据文档
给出其位置,而使用.position
根据其第一个父项给出其“位置”,其“位置”不是“静态”(默认)
以下是一些例子:
第一个示例使用
在容器顶部添加空间,而第二个示例使用padding top
在容器顶部添加空间。这两个示例都返回一个大于子对象top
位置的值
唯一的问题是,position
在计算子元素的位置时没有考虑子元素的边距、填充和边框。这是因为所有这些都是元素的一部分,所以即使您可能看不到它们,它们也不会包含在元素的位置计算中。当然,这取决于具体的内容要查看其位置的元素的一部分,需要将其添加到.position
的结果中。有些人希望“position”返回到边框的左上角位置,这意味着添加边距。如下所示:
好吧,我明白了,奇怪。我想我犯了一个错误。它现在起作用了。我如何获得在id框架内单击的相对位置?@Indianer我不确定你所说的“在id框架内单击的相对位置”是什么意思.您的意思是相对于frame
元素,实际的单击发生在哪里?是的,类似于$(“#frame”)。单击(函数(oEvent){$(this).position()})
鼠标的坐标在框架内单击,这就是我现在使用的。但是我想独立于文档evt.pageY | X
,因为如果框架位于中心,并且人们有不同的浏览器窗口大小,这将导致错误的计算,因为每个兄弟的左边距都不同wser.@Indianer我不确定我是否遵循了。如果你想得到鼠标的位置,你必须使用evt.pageX | Y
-它将始终返回基于文档的位置。如果你想得到鼠标在另一个元素内的位置,你必须减去元素的偏移量
高度/宽度。计算不应该出错-所返回的偏移量
正是您所需要的。无论在什么位置单击元素,都会动态找到其偏移量
(如果浏览器窗口被调整大小或滚动)然后根据鼠标的整体位置计算出来。好吧,我明白了,很奇怪。我想我犯了一个错误。它现在起作用了。我如何获得在id框架内单击的相对位置?@Indianer我不确定你所说的“在id框架内单击的相对位置”是什么意思.您的意思是相对于frame
元素,实际的单击发生在哪里?是的,类似于$(“#frame”)。单击(函数(oEvent){$(this).position()})
鼠标的坐标在框架内单击,这就是我现在使用的。但是我想独立于文档evt.pageY | X
,因为如果框架位于中心,并且人们有不同的浏览器窗口大小,这将导致错误的计算,因为每个兄弟的左边距都不同wser.@Indianer我不确定我是否遵循了。如果你想得到鼠标的位置,你必须使用evt.pageX | Y
-并且它将始终返回基于文档的位置。如果你想得到鼠标在另一个元素内的位置,你必须减去元素的偏移量
高度/宽度。Th