Javascript jQuery:如何在父容器中创建粘性侧栏?

Javascript jQuery:如何在父容器中创建粘性侧栏?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,大家好,可以在div容器中创建一个粘性的侧边栏吗?我尝试使用position fixed,但使用fixed更改了元素相对于窗口的位置。所以我做了一些搜索,看看是否有可能做一个相对于父div的固定位置,基本上所有的答案都是否定的 在那之后,我寻找另一种方法来做这件事,但我什么也没找到(也许我真的不擅长搜索)。所以这就是为什么我在这里问它,你们知道我如何制作一个相对于其父div而不是window的粘性边栏吗 提前谢谢 编辑:小提琴 jQuery(函数(){//文档就绪 var sideBarTop

大家好,可以在div容器中创建一个粘性的侧边栏吗?我尝试使用position fixed,但使用fixed更改了元素相对于窗口的位置。所以我做了一些搜索,看看是否有可能做一个相对于父div的固定位置,基本上所有的答案都是否定的

在那之后,我寻找另一种方法来做这件事,但我什么也没找到(也许我真的不擅长搜索)。所以这就是为什么我在这里问它,你们知道我如何制作一个相对于其父div而不是window的粘性边栏吗

提前谢谢

编辑:小提琴

jQuery(函数(){//文档就绪
var sideBarTop=$(“#侧边栏”).offset().top;//定位顶部
var sideBarLeft=$('#sidebar').offset().left//position left
jQuery(窗口).scroll(函数(){//scroll事件
var windowTop=$(window).scrollTop();//从顶部返回滚动
if(侧栏顶部<窗口顶部){
$(#sidebar').css({position:'fixed',top:0,left:sideBarLeft});
}
否则{
$('侧边栏').css('位置','静态');
}
});
});

位置固定将“固定”相对于视口的元素。您需要做的是使父元素
position:relative
,并且相对于父元素固定的子元素应该是
position:absolute;左:0

您正在寻找的
位置:绝对


这里的示例:

您可以使用
位置:绝对
,并使用Jquery根据父元素的滚动更改
top
属性,如下所示:

jQuery(window).scroll(function(){ 
   var windowTop = $(window).scrollTop()+30; 
   jQuery('#sidebar').css('top',windowTop);  
});
检查您的演示小提琴


在您的示例中,几乎与使用
位置:fixed
相同,但请检查另一个示例:

您是否有您当前拥有的小提琴或示例代码?对于我来说,给定父元素相对位置是可行的,您只需要通过边距而不是通过左、上、下来定位您的固定元素,right@justin补充道fiddle@LJ_1102问题是我用百分比表示宽度。你也可以用百分比表示边距,我看不出有什么问题。@user326212 np mate很高兴能帮助你
jQuery(window).scroll(function(){ 
   var windowTop = $(window).scrollTop()+30; 
   jQuery('#sidebar').css('top',windowTop);  
});