【问题标题】:bootstrap static to fixed navbar jumping on scroll引导静态到固定导航栏在滚动时跳跃
【发布时间】:2015-10-09 01:52:36
【问题描述】:

解决这个问题有点麻烦。 我有一个引导导航栏,当查看器滚动经过顶部的徽标时,它会从静态变为固定。一切正常,除了导航栏到达顶部时,它会跳下丢失前几行内容。谁能帮我解决这个问题?

html

<div id="logo">
    <div class="container">
        <div class="row">
            <div class="col-md-12">
                <h1>BIG,</h1>
                <h1>BIG LOGO!</h1>
            </div>
        </div>
    </div>
</div>    

<div id="nav-wrapper">
    <div id ="nav" class="navbar navbar-inverse navbar-static-top">
      <div class="container">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="#">Project name</a>
        </div>
        <div id="navbar" class="collapse navbar-collapse">
          <ul class="nav navbar-nav">
            <li class="active"><a href="#">Home</a></li>
            <li><a href="#about">About</a></li>
            <li><a href="#contact">Contact</a></li>
          </ul>
        </div><!--/.nav-collapse -->
      </div>
    </nav>
</div>    

css

#nav.affix {
    position: fixed;
    top: 0;
    width: 100%
}

java

$(function() {
    $('#nav-wrapper').height($("#nav").height());

    $('#nav').affix({
        offset: { top: $('#nav').offset().top }
    });
});

Check the JSFIDDLE example

谢谢大家!

【问题讨论】:

  • 请在问题中包含所有相关代码。此外,我认为代码现在的工作方式没有问题。无论如何,在 Chrome 上。
  • 导航栏得到修复的那一刻将margin-top:50px添加到id为content的div。并在导航栏不固定时删除 margin-top

标签: javascript jquery html css twitter-bootstrap


【解决方案1】:
$(function() {
    $('#nav-wrapper').height($("#nav").height());

    $('#nav').affix({
        offset: { top: $('#nav').offset().top }
    });

    $('#nav').on('affixed.bs.affix', function () {
        $('#content').css({"margin-top": "100px"})
    });
});

https://jsfiddle.net/yyLbgh98/1/

【讨论】:

  • 太好了,谢谢。这行得通。我想知道你从哪里得到 100px?我在想 50px 会起作用,因为这是导航栏的高度。
  • 您必须再添加 50px 以匹配内容的当前位置。
  • @JalapenoJack:如果它回答了您的问题,您能否将其标记为已完成?
猜你喜欢
  • 1970-01-01
  • 2023-03-03
  • 1970-01-01
  • 2016-11-24
  • 2015-05-06
  • 2018-01-12
  • 1970-01-01
  • 2018-12-31
相关资源
最近更新 更多