【发布时间】:2014-02-03 22:20:34
【问题描述】:
大家好,是否可以在 div 容器中制作粘性侧边栏?我尝试使用固定位置,但使用固定改变了元素相对于窗口的位置。所以我做了一些搜索,看看是否可以相对于父 div 做一个固定的位置,基本上所有的答案都是否。
之后我寻找另一种方法来做到这一点,但我什么也没找到(也许我真的不擅长搜索)。所以这就是我在这里问它的原因你们知道如何制作一个相对于其父 div 而不是窗口的粘性侧边栏吗?
提前致谢!
编辑:小提琴 js fiddle
jQuery(function() { // document ready
var sideBarTop = $('#sidebar').offset().top; // position top
var sideBarLeft = $('#sidebar').offset().left //position left
jQuery(window).scroll(function(){ // scroll event
var windowTop = $(window).scrollTop(); // returns scroll from top
if(sideBarTop < windowTop) {
$('#sidebar').css({position: 'fixed', top: 0, left: sideBarLeft});
}
else {
$('#sidebar').css('position', 'static');
}
});
});
【问题讨论】:
-
你有你目前拥有的小提琴或示例代码吗?
-
给父元素位置相对对我有用,您只需要通过边距而不是通过左、上、下、右来定位固定元素
-
@justin 添加了小提琴
-
@LJ_1102 问题是我的宽度使用百分比
-
您也可以使用带百分比的边距,我看不出有什么问题。
标签: javascript jquery html css