javascript - 滚动后修复导航栏并平滑滚动下方的内容

标签 javascript jquery html css twitter-bootstrap

我正在使用 Twitter Bootstrap's Affix plugin向下滚动 80px 后将我的导航栏固定到顶部。现在这使得导航栏 CSS 成为

position:fixed;
top:0;
left:0

由于导航栏的位置固定并且元素不再是 DOM 的一部分,因此一旦导航栏固定,页面内容就会在导航栏下方滑动。为了解决这个问题,我尝试使用 JavaScript 在滚动 80 像素后向内容容器添加一个 margin-top 等于导航栏的高度。

这是我的 JS 代码

$(window).scroll(function() {
    var height = $(window).scrollTop();

    if(height >= 80) {
        $('.content-container').css('margin-top', '44px');
    } else {
        $('.content-container').css('margin-top', '0px');
    }
});

现在这按预期工作,但是当页面正在加载并且 Bootstrap javascript 文件仍在下载时,导航栏在滚动后不会固定到顶部,这会带来“故障”体验。是否有仅使用 CSS 来解决此问题的方法?

最佳答案

我一开始就在标题中使用了 position:absolute,因为这也将它从流程中移除,所以我可以从一开始就考虑到这一点,并通过 margin 。

关于javascript - 滚动后修复导航栏并平滑滚动下方的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28467006/

相关文章:

javascript - 在 jQuery 中的某个点/字符处拆分字符串

javascript - select2 中的右对齐下拉菜单

javascript - insertBefore 正在复制内容

css - 如何垂直对齐按钮文本到第二行 w.r.t 标签。在 <li>

javascript - 如何从这个 json 字符串中读取数据?

javascript - 阻止 Umbraco/TinyMce 将绝对 URL 转换为相对 URL

javascript - 如何将 CSS 样式插入到值 =""中?

javascript - 如何在模态上用纯 JavaScript 显示叠加层?

javascript - 字符串上的正则表达式多重匹配

javascript - 在以下控制流中使用响应之前,如何在 Node/快速应用程序中等待来自 mongo findOne 查询的响应