繁体   English   中英

jQuery.offset()设置position:absolute。 我需要的位置:固定

[英]jQuery.offset() sets position: absolute. I need position: fixed

当您使用jQuery.offset({coords})设置元素的偏移量时,它还将CSS属性positionabsolute

然而,我有一个div,我设置了position: fixed在我的CSS中,我希望它保持这种方式,即使在使用jQuery设置元素的偏移量之后。

现在,我确定我可以设置偏移量,然后设置position: fixed再次position: fixed ,但我想知道是否有一种方法可以告诉jQuery在设置偏移量时将位置设置为固定而不是绝对。

HTML

<div class="searchResults">
    ...
</div>

CSS

DIV.searchResults {
    position: fixed;
    padding: 20px;
    background-color: red;
    z-index: 501;
}

jQuery的

$("DIV.searchResults").offset({left: 0, top: 0});

呈现HTML

<div class="searchResults" style="position: absolute; top: 0px; left: 0px;">
    ...
</div>

显然,由于jQuery在样式中设置位置,它将胜过我的CSS类的值。 所以我需要一种方法来告诉jQuery将position设置为fixed而不是absolute ,或者告诉它设置偏移量而不设置CSS属性position的值。

正如我上面评论的那样,在您的情况下,您只需要修改顶部和左侧的CSS,如下所示:

$("DIV.searchResults").css({left: 0, top: 0});

因为$ .offset setter方法只操纵left,top和position值来使元素相对于页面(从静态到相对,从固定到绝对)。 由于您希望将其定位,请直接设置值。

也许不那么优雅,但我认为你可以在之后链接.css()以确保将position设置为fixed如下:

jQuery的

$("DIV.searchResults").offset({
    left: 0, 
    top: 0
}).css("position" : "fixed");

没有经过测试,但我认为这样可行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM