Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Div在另一Div中的相对位置_Javascript_Jquery_Html_Position - Fatal编程技术网

Javascript 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

如何获取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为中心
宽度: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