Jquery 固定侧边栏内包装div

Jquery 固定侧边栏内包装div,jquery,css,scroll,sidebar,css-position,Jquery,Css,Scroll,Sidebar,Css Position,嗨,我一直在尝试做一个固定的侧边栏内包装div,但没有运气。该页面是,我需要侧边栏保持固定,而我向下滚动的其他新闻部分。截面结构如下所示: <section class="secondary"> <section id="sidebar"> ... </section> <section id="othernews"> ... </section> ... ... 我尝试在“secondary”部分中进行绝对定位,修

嗨,我一直在尝试做一个固定的侧边栏内包装div,但没有运气。该页面是,我需要侧边栏保持固定,而我向下滚动的其他新闻部分。截面结构如下所示:

<section class="secondary">
 <section id="sidebar">
 ...
 </section>
 <section id="othernews">
 ...
 </section>

...
...

我尝试在“secondary”部分中进行绝对定位,修复了,这实际上修复了相对于浏览器窗口的侧栏,我尝试了这个查询,这似乎正是我所需要的:但我无法使它与我的页面一起工作。知道我做错了什么吗?提前感谢

尝试使用
.position()
而不是
.offset()
,并从脚本末尾删除额外的符号

$(function() {
    var top = $('#sidebar').position().top - parseFloat($('#sidebar').css('marginTop').replace(/auto/, 0));
    var footTop = $('#footer').position().top - parseFloat($('#footer').css('marginTop').replace(/auto/, 0));
    var maxY = footTop - $('#sidebar').outerHeight();
$(window).scroll(function(evt) {
    var y = $(this).scrollTop();
    if (y > top) {
        if (y < maxY) {
            $('#sidebar').addClass('fixed').removeAttr('style');
        } else {
            $('#sidebar').removeClass('fixed').css({
                 position: 'absolute',
                  top: (maxY - top) + 'px'
            });
        }
    } else {
        $('#sidebar').removeClass('fixed');
    }
});
}); //​ What are this symbols ???? remove them!
$(函数(){
var top=$('sidebar').position().top-parseFloat($('sidebar').css('marginTop').replace(/auto/,0));
var footTop=$('footer').position().top-parseFloat($('footer').css('marginTop').replace(/auto/,0));
var maxY=footTop-$(“#边栏”).outerHeight();
$(窗口)。滚动(功能(evt){
var y=$(this.scrollTop();
如果(y>顶部){
if(y
欢迎来到SO。这对我们来说有点难以分析。尝试分解页面,直到达到预期效果。然后在保持效果的同时重新构建。可能有其他方法可以让我获得想要的效果吗?分解页面确实有帮助,谢谢。我想我在html的某个地方搞砸了,但我用这个示例再次构建了我的页面,现在一切正常