如何使用Jquery设置DIV的绝对位置?

如何使用Jquery设置DIV的绝对位置?,jquery,css,position,Jquery,Css,Position,我有这样一个代码: $('#lol').css({ position: "absolute", marginLeft: 0, marginTop: 0, top: 0, left: 0}); 问题是我的div是相对定位的,因此它是div的点0,而不是整个窗口。为什么呢 为什么呢 如果要相对于整个窗口使用position:absolute,则需要确保#lol没有父元素也位于absolute、fixed或relative 否则,您指定的任何定位都将相对于它们进行

我有这样一个代码:

$('#lol').css({ position: "absolute",

        marginLeft: 0, marginTop: 0,

        top: 0, left: 0});
问题是我的div是相对定位的,因此它是div的点0,而不是整个窗口。为什么呢

为什么呢

如果要相对于整个窗口使用
position:absolute
,则需要确保
#lol
没有父元素也位于
absolute
fixed
relative


否则,您指定的任何定位都将相对于它们进行

具有
位置:相对
位置:绝对
的元素将相对于具有
位置:相对
位置:绝对
的最近父元素进行定位。因此,如果希望元素相对于整个窗口进行定位,请将其置于具有相对或绝对位置的任何父包装器之外。

这就是定位的工作原理。如果有任何指定了位置的父元素,则绝对定位将相对于它们发生


如果你想让它出现在窗口中,但无法消除任何其他元素的位置,你需要手动或使用一点JS从常规页面流中删除该项。

正如其他答案中指出的那样,
\lol
的父元素中至少有一个设置了
位置,这将导致元素定位在父元素中

使用jQuery的解决方案是将元素直接附加到主体

$('#lol').css({ 
    position: "absolute",
    marginLeft: 0, marginTop: 0,
    top: 0, left: 0
}).appendTo('body');

这将使其显示在窗口的左上角。

如果要在相对于整个窗口屏幕的元素上使用绝对:位置,则该元素的任何父元素都不应给出任何位置值,如绝对、固定或相对,因为如果为元素指定了任何位置属性,则该元素将采用相对于其父元素的位置。
希望它能很好地回答你……:)

为什么是什么?为什么你的部门相对定位?或者说,为什么绝对定位会以这种方式起作用呢?语言的要点是以清晰明确的方式进行交流。它不应该涉及猜测。如果子元素具有position:absolute.appendTo,则其子元素将绝对定位在其相对父元素内,但在其他方面非常棒!它工作得很好!但是滚动呢?我们如何运行滚动代码事件?我尝试过这样的方法:$(window.scroll(function(){/*code here*/});但它似乎不起作用。有什么想法吗?