jquery - 滚动到顶部时侧边栏消失

标签 jquery css sidebar scrolltop

我现在正在这个网站上工作,我让侧边栏一直跟随,直到我点击页脚。

DEMO SITE ID : 测试 PASS : 2015

我做得很好,但是当我滚动回到顶部(非常顶部)时,我的侧边栏会自动隐藏它。

side bar disappears...

当我向下滚动一点点或单击 F5 并刷新时,它会再次出现。

这是我用于此功能的 javascript。

$(function(){
var target = $("#subContainer");//select which element you want to follow
var footer = $("footer")//making sidebar stop at footer
var targetHeight = target.outerHeight(true);
var targetTop = target.offset().top;

$(window).scroll(function(){
    var scrollTop = $(this).scrollTop();
    if(scrollTop > targetTop){
        var footerTop = footer.offset().top;

        if(scrollTop + targetHeight > footerTop){
            customTopPosition = footerTop - (scrollTop + targetHeight)
            target.css({position: "fixed", top:  customTopPosition + "px"});
        }else{
            target.css({position: "fixed", top: "10px"});
        }
    }else{
        target.css({position: "static", top: "auto"});
    }
});

});

我该如何解决这个问题,以便在我向右向上滚动时显示边栏。

感谢您的宝贵时间!

最佳答案

代替:

target.css({position: "static", top: "auto"});

只需将顶部的 css 重置为 0px:

target.css({top: "0px"});

这是因为当我们第一次加载页面时,您在#subContainer 上的原始样式已经有了position: fixed。所以真正唯一改变的是最高排名值。

您应该能够通过仅更改顶部来进一步简化您的代码:

$(window).scroll(function(){
    var scrollTop = $(this).scrollTop();
    if(scrollTop > targetTop){
        var footerTop = footer.offset().top;

        if(scrollTop + targetHeight > footerTop){
            customTopPosition = footerTop - (scrollTop + targetHeight)
            target.css({top:  customTopPosition + "px"});
        }else{
            target.css({ top: "10px"});
        }
    }else{
        target.css({top: "0px"});
    }
});

关于jquery - 滚动到顶部时侧边栏消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32793697/

相关文章:

css - 如何使 WP 侧边栏具有响应性并在小屏幕上显示在页面底部?

html - 左侧边栏被浏览器窗口截断

javascript - 用于使用 jquery 添加的内容中的链接的函数

javascript - 如何从 DOM 元素创建带有键和值的对象数组?

javascript - facebook connect弹窗是怎么设计的?我

javascript - 自动图像缩放?

javascript - 复选框 .change() 上的触发事件,但 *在 * 复选框显示为选中状态之后?

html - 如何让标签之间的空格不显示?

css - 编辑RefineryCMS 2.1 Menu Presenter以操作dom_id css和其他属性

ios - ios 的 swift 中带有 uitableview 的侧边栏菜单