当您使用jQuery.offset({coords})
设置元素的偏移时,它还会将CSS属性position
设置为absolute
。
但是,我有一个div,我在CSS中设置为position: fixed
,我希望它保持这种状态,即使在使用jQuery设置元素的偏移量后也是如此。
现在,我确定我可以设置偏移量,然后再次设置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
的值。
答案 0 :(得分:11)
正如我在上面评论的那样,在你的情况下你只需要像这样修改顶部和左边的CSS:
$("DIV.searchResults").css({left: 0, top: 0});
因为$ .offset setter方法只操纵left,top和position值来使元素相对于页面(从静态到相对,从固定到绝对)。由于您希望将其定位,请直接设置值。
答案 1 :(得分:2)
也许不那么优雅,但我认为您可以在此之后链接.css()
,以确保position
设置为fixed
,如下所示:
jquery的
$("DIV.searchResults").offset({
left: 0,
top: 0
}).css("position" : "fixed");
未经测试,但我认为这样可行。