javascript - jQuery 粘性边栏失败 : throws sidebar out of position

标签 javascript jquery html css

大家好,我正在尝试制作一个粘性侧边栏,但它无法正常工作。任何帮助将非常感激。当你滚动时会发生什么,侧边栏被扔出他的左边位置。正如您在 fiddle 中看到的,同样的情况只发生在我使用图像的地方。这是一个Js fiddle . 有什么想法我做错了什么或我如何才能使这项工作成功吗?

提前致谢!

jQuery 代码

jQuery(function() { // document ready
        var sideBarTop = $('#sidebar').offset().top;
        var sideBarLeft = $('#sidebar').offset().left
        jQuery(window).scroll(function(){ // scroll event
            var windowTop = $(window).scrollTop(); 
            if(sideBarTop < windowTop) {
                $('#sidebar').css({position: 'fixed', top: 0, left: sideBarLeft});
            }
            else {
                $('#sidebar').css('position', 'static');
            }
        });

    });

最佳答案

此问题是由于您在 #sidebar 中设置的百分比值引起的。当它是静态的时,百分比值将基于其父元素,但是当您切换到 position:fixed 时,百分比值将基于 window/viewport,您可以看到规范在这里:http://www.w3.org/TR/CSS2/visuren.html#positioning-scheme

关于javascript - jQuery 粘性边栏失败 : throws sidebar out of position,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21526960/

相关文章:

javascript - HTC One X KeyCode 始终返回零

javascript - 使用 Redux Saga 并行获取数据

jquery - slider 隐藏菜单项

php - 就地丰富编辑

html - 如何调整 float 元素的位置?

javascript - 如何在html中以编程方式清除缓存?

javascript - 通过 MvcHtmlString.Create() 渲染撇号

java - 使用javascript更改网页元素的支持bean的值?

javascript - 如何使用 PHP mySQL 和 jQuery 在另一个页面上显示搜索结果?

javascript - 如何创建一个 Javascript 函数调用列表,等待上一个函数完成后再调用下一个函数?