我试图将一个元素放在其他元素的正下方,但我遇到了一个问题,当页面向下滚动时,offset()会返回IE和其他浏览器的不同值.
IE返回相对于可见区域顶部的位置(即向下滚动时下降),Firefox和Chrome总是返回相同的值,无论滚动(我认为这是一个更好的行为).
只是为了澄清:困扰我的是,如果没有父元素相对定位,则offset()和position()会返回IE的不同值,具体取决于您向下滚动的距离,但jQuery中从未提及过这一点.文档.为什么会这样?有没有办法绕过它,不需要更改html结构(例如,我想为许多字段重用一个日期选择器,只需稍微重新定位).
有没有人遇到同样的问题?
详细说明 griegs 答案,您可以将其附加到相同的包含 DOM 元素,然后使用.position()
而不是.offset()
因为它将引用基于父级而不是文档的位置。可能会给你更好的结果。
http://api.jquery.com/position/
格里格删除了他的答案,他是这样说的:
否,但我使用追加将项目附加到其他项目之后。因此,如果您的元素位于 div 中,您会将新元素附加到 Div,这将使它们出现在底部