javascript - jQuery:如何在父容器中创建一个粘性侧边栏?

标签 javascript jquery html css

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

之后,我搜索了另一种方法来执行此操作,但一无所获(也许我真的不擅长搜索)。所以这就是为什么我在这里问它,你们知道如何制作一个相对于其父 div 而不是窗口的粘性侧边栏吗?

提前致谢!

编辑: fiddle 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');
            }
        });

    });

最佳答案

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

jQuery(window).scroll(function(){ 
   var windowTop = $(window).scrollTop()+30; 
   jQuery('#sidebar').css('top',windowTop);  
});

检查您的 Demo Fiddle http://jsfiddle.net/7ahsm/19/ .

在您的示例中几乎与使用 position:fixed 相同,但检查另一个示例: http://jsfiddle.net/3CduR/

关于javascript - jQuery:如何在父容器中创建一个粘性侧边栏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21529304/

相关文章:

javascript - 在 Chrome 扩展中从 JavaScript 调用网站 API 时出现跨域错误

javascript - 如何使用 Nightwatch - Browserstack 测试多个文件夹或文件?

javascript - 如何使用 jquery 验证美国邮政编码

javascript - 如何将加密与 FlexPaper 合并

html - 无法点击平板电脑/手机宽度的输入

javascript - Jquery改变偶类中每个下一个偶数tr的颜色

javascript - jQuery DatePicker - 启用特定日期 - 代码不工作

javascript - 使字符串 initcap 就像我在文本框中输入 paul james 一样,它应该给我 Paul James

javascript - 一页中具有不同设置的多个 Owl Carousel

html - 将标题/页眉与文本 HTML、CSS 对齐