滚动时修复顶部的两个导航栏

Posted

技术标签:

【中文标题】滚动时修复顶部的两个导航栏【英文标题】:Fix two Navbars on top when scrolling 【发布时间】:2021-06-04 19:24:45 【问题描述】:

我有两个导航栏,你可以在这里查看代码:https://jsfiddle.net/5e3hbr8p/

但我希望它们即使在滚动到底部后也能保持在顶部。第一个导航栏和第二个导航栏都应该固定在顶部。我尝试了多种方法,但我认为我在这里忽略了一些小事情。

这是我的导航栏代码:

<nav class="navbar navbar-expand-sm bg-faded navbar-light sticky-top first-nav">
    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar1">
        <span class="navbar-toggler-icon"></span>
    </button>
    <a href="/" class="navbar-brand">One</a>
    <div class="navbar-collapse collapse" id="navbar1">
        <ul class="navbar-nav">
            <li class="nav-item active">
                <a class="nav-link" href="#">Link <span class="sr-only">Home</span></a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="#">Link</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="#">Link</a>
            </li>
        </ul>
    </div>
</nav>


<nav class="navbar navbar-expand-sm bg-dark navbar-dark sticky-top second-nav">
    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar2">
        <span class="navbar-toggler-icon"></span>
    </button>
    <a href="/" class="navbar-brand">Two</a>
    <div class="navbar-collapse collapse" id="navbar2">
        <ul class="navbar-nav">
            <li class="nav-item active">
                <a class="nav-link" href="#">Link <span class="sr-only">Home</span></a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="#">Link</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="#">Link</a>
            </li>
        </ul>
    </div>
</nav>

如何让它们都保持在顶部?

【问题讨论】:

【参考方案1】:

您可以结帐CSS position:sticky

【讨论】:

当我使用这个时,只有第二个导航栏变得粘滞,而第一个导航栏消失了。【参考方案2】:
.sticky 
  position: fixed;
  top: 0;
  width: 100%;

您可以在导航栏上添加您想要粘贴的 CSS 您可以通过 w3school 收集更多信息 访问:https://www.w3schools.com/howto/tryit.asp?filename=tryhow_js_navbar_sticky

【讨论】:

当我使用这个时,只有第二个导航栏变得粘滞,而第一个导航栏消失了。 你的两个Navbar上加了这个类吗? 是的,我已经添加了 不,第一个导航栏被第二个覆盖 好的。没问题..我修好了..请在下面添加第二个导航栏代码 .sticky_top_two position: -webkit-sticky;位置:粘性;顶部:50px; z指数:1020;并从第二个导航栏中删除(置顶)

以上是关于滚动时修复顶部的两个导航栏的主要内容,如果未能解决你的问题,请参考以下文章

修复屏幕顶部的“粘性”导航栏

如何在滚动时隐藏导航栏,除非在屏幕顶部

向下滚动时如何停止页面顶部的导航栏

我在 Bootstrap4 中提到了修复导航栏。但是导航栏在我的代码中溢出

如何创建滚动后固定在顶部的粘性导航栏

粘性导航栏可变大小更改滚动位置