【问题标题】:How to change navigation scroll down?如何更改导航向下滚动?
【发布时间】:2021-10-27 20:38:55
【问题描述】:

在 div 之后向下滚动时,导航栏会获得新的背景颜色(导航栏应该固定在顶部,我在 Bootstrap 中使用navbar-fixed-top)。

我尝试了一些教程,但没有成功。

我有两个菜单 #scroll-menu#main-menu。我想在打开浏览器时显示#main-menu。当我向下滚动时,#main-menu 不显示。 #scroll-menu 被显示。

html

<div class="container-fluid">
    <nav class="navbar navbar-expand-lg navbar-light bg-light" id="main-menu">
        <div class="container-fluid">
            <a class="navbar-brand" href="#">لوگو</a>
            <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
                <span class="navbar-toggler-icon"></span>
            </button>
            <div class="collapse navbar-collapse" id="navbarSupportedContent">
                <ul class="navbar-nav me-auto mb-2 mb-lg-0">
                    <li class="nav-item">
                        <a class="nav-link" href="#">محصولات</a>
                    </li>
                    <li class="nav-item">
                        <a class="nav-link" href="#">خدمات</a>
                    </li>
                    <li class="nav-item">
                        <a class="nav-link" href="#">راهکارها</a>
                    </li>
                    <li class="nav-item">
                        <a class="nav-link" href="#">درباره ما</a>
                    </li>
                    <li class="nav-item">
                        <a class="nav-link" href="#">شبکه دانش</a>
                    </li>
                </ul>
            </div>
        </div>
    </nav>
</div>
<nav class="navbar navbar-expand-lg navbar-dark bg-blue position-fixed w-100 d-none" id="scroll-menu">
    <div class="container-fluid">
        <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContentFixed" aria-controls="navbarSupportedContentFixed" aria-expanded="false" aria-label="Toggle navigation">
            <span class="navbar-toggler-icon"></span>
        </button>
        <div class="collapse navbar-collapse" id="navbarSupportedContentFixed">
            <ul class="navbar-nav me-auto mb-2 mb-lg-0 w-100">
                <li class="nav-item col-auto">
                    <a class="nav-link" href="#">
                        <i class="far fa-lightbulb"></i>
                        <span>معرفی</span>
                    </a>
                </li>
                <li class="nav-item col-auto">
                    <a class="nav-link" href="#">
                        <i class="fas fa-dolly"></i>
                        <span>انبار و حسابداری انبار</span>
                    </a>
                </li>
                <li class="nav-item col-auto">
                    <a class="nav-link" href="#">
                        <i class="far fa-building"></i>
                        <span>دارایی های ثابت</span>
                    </a>
                </li>
                <li class="nav-item col-auto">
                    <a class="nav-link" href="#">
                        <i class="fas fa-tasks"></i>
                        <span>صورت های مالی اساسی</span>
                    </a>
                </li>
            </ul>
        </div>
    </div>
</nav>

脚本

window.onscroll = function() {
    scrollFunction();
};

function scrollFunction() {
    if (document.body.scrollTop > 700 || document.documentElement.scrollTop > 700) {
        document.getElementById('scroll-menu').classList.add("d-none");
        document.getElementById('main-menu').classList.remove("d-block");
    } else {
        document.getElementById('scroll-menu').classList.add("d-block");
        document.getElementById('main-menu').classList.remove("d-none");
    }
}    window.onscroll = function() {
    scrollFunction();
};

function scrollFunction() {
    if (document.body.scrollTop > 700 || document.documentElement.scrollTop > 700) {
        document.getElementById('scroll-menu').classList.add("d-none");
        document.getElementById('main-menu').classList.remove("d-block");
    } else {
        document.getElementById('scroll-menu').classList.add("d-block");
        document.getElementById('main-menu').classList.remove("d-none");
    }
}

【问题讨论】:

    标签: javascript html


    【解决方案1】:

    修改后的html

    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet">
    <body style="height:2000px">
    <div class="container-fluid">
        <nav class="navbar navbar-expand-lg navbar-light bg-light position-fixed d-block" id="main-menu">
            <div class="container-fluid">
                <a class="navbar-brand" href="#">لوگو</a>
                <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
                    <span class="navbar-toggler-icon"></span>
                </button>
                <div class="collapse navbar-collapse" id="navbarSupportedContent">
                    <ul class="navbar-nav me-auto mb-2 mb-lg-0">
                        <li class="nav-item">
                            <a class="nav-link" href="#">محصولات</a>
                        </li>
                        <li class="nav-item">
                            <a class="nav-link" href="#">خدمات</a>
                        </li>
                        <li class="nav-item">
                            <a class="nav-link" href="#">راهکارها</a>
                        </li>
                        <li class="nav-item">
                            <a class="nav-link" href="#">درباره ما</a>
                        </li>
                        <li class="nav-item">
                            <a class="nav-link" href="#">شبکه دانش</a>
                        </li>
                    </ul>
                </div>
            </div>
        </nav>
    </div>
    <nav class="navbar navbar-expand-lg navbar-dark bg-dark text-white w-100 text-dark d-none" id="scroll-menu">
        <div class="container-fluid">
            <a class="navbar-brand" style="font-weight:400" href="#">لوگو</a>
            <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContentFixed" aria-controls="navbarSupportedContentFixed" aria-expanded="false" aria-label="Toggle navigation">
                <span class="navbar-toggler-icon"></span>
            </button>
            <div class="collapse navbar-collapse" id="navbarSupportedContentFixed">
                <ul class="navbar-nav me-auto mb-2 mb-lg-0 w-100">
                    <li class="nav-item col-auto">
                        <a class="nav-link" href="#">
                            <i class="far fa-lightbulb"></i>
                            <span>معرفی</span>
                        </a>
                    </li>
                    <li class="nav-item col-auto">
                        <a class="nav-link" href="#">
                            <i class="fas fa-dolly"></i>
                            <span>انبار و حسابداری انبار</span>
                        </a>
                    </li>
                    <li class="nav-item col-auto">
                        <a class="nav-link" href="#">
                            <i class="far fa-building"></i>
                            <span>دارایی های ثابت</span>
                        </a>
                    </li>
                    <li class="nav-item col-auto">
                        <a class="nav-link" href="#">
                            <i class="fas fa-tasks"></i>
                            <span>صورت های مالی اساسی</span>
                        </a>
                    </li>
                </ul>
            </div>
        </div>
    </nav>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js"></script>
    <script
      src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <script>
    

    修改后的javascript

    window.onscroll = function() {
        scrollFunction();
    };
    
    function scrollFunction() {
        if (document.body.scrollTop > 700 || document.documentElement.scrollTop > 700) {
            document.getElementById('scroll-menu').classList.add("d-block");
            document.getElementById('scroll-menu').classList.remove("d-none");
            document.getElementById('scroll-menu').classList.add("position-fixed");
            
            document.getElementById('main-menu').classList.add("d-none");
            document.getElementById('main-menu').classList.remove("d-block");
            document.getElementById('main-menu').classList.remove("position-fixed");
        } else {
            document.getElementById('scroll-menu').classList.remove("d-block");
            document.getElementById('scroll-menu').classList.add("d-none");
            document.getElementById('scroll-menu').classList.remove("position-fixed");
            
            document.getElementById('main-menu').classList.remove("d-none");
            document.getElementById('main-menu').classList.add("d-block");
            document.getElementById('main-menu').classList.add("position-fixed");
        }
    }    
    

    【讨论】:

      猜你喜欢
      • 2017-12-22
      • 1970-01-01
      • 1970-01-01
      • 2013-12-11
      • 1970-01-01
      • 2016-06-09
      • 1970-01-01
      • 2016-12-04
      • 2015-02-03
      相关资源
      最近更新 更多