如何在使用 bootstrap 滚动时将一些 div 固定在顶部?

How to fix some divs on top while scrolling using bootstrap?

我在 Angular 2 项目中使用 bootstrap,我想在用户向下滚动页面时始终在顶部冻结几个 div(在代码中使用 id 作为过滤器和类别) .

这是我在 jsfiddle here

中的代码

代码片段:

    <nav class="navbar navbar-default navbar-fixed-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>

        </div>
        <div id="navbar" class="collapse navbar-collapse">
            <ul class="nav navbar-nav">

                <li routerLinkActive="active"><a routerLink="/overview">Overview</a></li>
                <li routerLinkActive="active"><a routerLink="/insights">Insights</a></li>
            </ul>






        </div>
        <!--/.nav-collapse -->


    </div>
</nav>


<div id="filters" class="container-fluid" style="margin-top: 60px" >

    <div class="row">
      <div class="col-md-2 col-sm-4">
        <button>Filter 1</button>
      </div>
       <div class="col-md-2 col-sm-4">
       <button>Filter 2</button>
       </div> 
    </div>
</div>

<div id="categories" class="container-fluid"  >
    <div class="row">
         <ul class="nav navbar-nav">

                <li><a routerLink="#">Sub Category 1</a></li>
                <li><a routerLink="#">Sub Category 2</a></li>
            </ul>

    </div>

    <div class="row">

        <div class="col-md-6 col-sm-12 col-xs-12">
            <div style="background: blue; height: 800px;">
              Trend Chart
            </div>
        </div>
        <div class="col-md-6 col-sm-12 col-xs-12">
            <div style="background: green; height: 800px;">
              Bar Chart
            </div>
        </div>
    </div>



</div>

我试过使用 bootstrap 的 'affix',但它破坏了 'filters' 和 'categories' div 的滚动和边距,可以看到 here

如果我遗漏了任何其他需要添加才能使词缀起作用的内容,请告诉我。

要实现您的目标,您需要将 position: fixedz-index: 1030 CSS 与 div

一起使用

这是jsfiddle

在你的div

中使用这个CSS
<div id="filters" class="container-fluid" 
style="margin-top: 60px; position: fixed; z-index: 1030;">

    <div class="row">
      <div class="col-md-2 col-sm-4">
        <button>Filter 1</button>
      </div>
       <div class="col-md-2 col-sm-4">
       <button>Filter 2</button>
       </div> 
    </div>
</div>

在您要修复的 div 中使用样式属性 "position:fixed"。 还要将 z-index 值设置为 100 以上。(这是为了在滚动时显示固定 div 超过所有其他 div)。

示例:

<div id="filters" class="container-fluid" style="margin-top: 60px;position:fixed;z-index:999;" >

    <div class="row">
      <div class="col-md-2 col-sm-4">
        <button>Filter 1</button>
      </div>
       <div class="col-md-2 col-sm-4">
       <button>Filter 2</button>
       </div> 
    </div>
</div>

<div id="categories" class="container-fluid" style="position:fixed;z-index:999;" >
    <div class="row">
         <ul class="nav navbar-nav">

                <li><a routerLink="#">Sub Category 1</a></li>
                <li><a routerLink="#">Sub Category 2</a></li>
            </ul>

    </div>

    <div class="row">

        <div class="col-md-6 col-sm-12 col-xs-12">
            <div style="background: blue; height: 800px;">
              Trend Chart
            </div>
        </div>
        <div class="col-md-6 col-sm-12 col-xs-12">
            <div style="background: green; height: 800px;">
              Bar Chart
            </div>
        </div>
    </div>
</div>