100px内容跳转后Bootstrap Affix固定标头

时间:2018-03-09 12:04:35

标签: jquery css twitter-bootstrap affix

我在我的标题上使用Bootstrap Affix,我想在页面滚动100px后将其修复。我在jquery中添加了这样的内容:

$('#navbar').affix({
      offset: {
        top: 100,
      }
    });

问题是当我滚动页面上的内容时跳起来。我添加了一个最小高度的包装,但这并没有解决问题。

有人可以帮忙吗?

链接到小提琴: https://jsfiddle.net/b5fusmsn/12/

1 个答案:

答案 0 :(得分:1)

闪烁/跳转是因为导航栏从position:static更改为postition:fixed。当贴图以100px应用时,它接近导航栏92px的高度,除非你有div of 100px in height above the navbar like in this question,否则它总是会“跳”。

在您的情况下,看起来您只是在滚动100px后尝试缩小导航栏填充,因此在这种情况下始终保持导航栏位置:固定并仅在应用.affix时调整填充。

https://jsfiddle.net/etxyk0y1/1/

.navbar {
    min-height: 50px;
    z-index: 99998;
    background:red;
    width:100%;
    position: fixed;
    transition: all .5s;
    top: 0;
}

.affix-top.navbar {
    padding-bottom: 20px;
    border: 1px solid transparent;
    padding-top: 20px;
}

.affix.navbar {
    padding-top: 10px;
    padding-bottom: 10px;
    font-size: 0.9em;
    border-bottom: 1px solid #f9f7f3;
    transition: all .5s;
}

使用nav-wrapper保持固定导航栏和内容之间的间距。

.nav-wrapper {
    padding-top: 100px;
}