【问题标题】:how to change color of navbar when scrolling to bottom?滚动到底部时如何更改导航栏的颜色?
【发布时间】:2021-01-01 14:33:11
【问题描述】:

我有 2 个问题。 问题 1: 我正在尝试在滚动到底部时更改导航栏背景颜色。我正在尝试添加该类,但它无法覆盖引导程序 !important 属性。但我已经使用这条线覆盖了它:

nav.scrolled {
  background-color: #e8e4e1 !important;
  box-shadow: 2px 10px 4px var(--section-bg-light);
}

问题 2:如何在滚动到页面底部、页面页脚时使用 javascript 更改导航栏背景?

let navbar = document.querySelector('.navbar');
let section = document.querySelectorAll('section');

section.addEventListener('mouseover', addIt);

function addIt() {
    navbar.classList.remove('bg-transparent');
    navbar.classList.add('bg-dark');
}
nav.bg-dark {
    background-color: #e8e4e1 !important;
}
<nav class="navbar navbar-expand-lg navbar-light bg-transparent fixed-top">
            <div class="container-fluid">
                <a class="navbar-brand" href="#"><img src="./img/logo-min.png" alt="JN-Fashion-Zone"></a>
                <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
      <span class="navbar-toggler-icon"></span>
    </button>
                <div class="collapse navbar-collapse" id="navbarNav">
                    <ul class="navbar-nav">
                        <li class="nav-item home">
                            <a class="nav-link" aria-current="page" href="#">Home</a>
                        </li>
                        <li class="nav-item">
                            <a class="nav-link" href="#">Products</a>
                        </li>
                        <li class="nav-item">
                            <a class="nav-link" href="#">Services</a>
                        </li>
                        <li class="nav-item">
                            <a class="nav-link" href="#">Contacts</a>
                        </li>
                    </ul>
                </div>
            </div>
        </nav>

【问题讨论】:

  • 如果滚动到底部时已经添加了 bg-dark 类,并且您现在要解决的问题是覆盖 Bootstrap 的 !important,您可能需要更改问题的标题反映这一点,因为这是两个不同的问题。听起来您已经知道如何应用该类,您只需要知道如何进行 CSS 覆盖。
  • 是的我已经想通了..实际上问题不是如何覆盖css ..问题是如何在滚动到底部时更改背景颜色?我在stackoverflow中看到了一些答案。他们使用jquery。但我需要一种仅使用 javascript 的简单方法...

标签: javascript html css


【解决方案1】:

请查看How to override !important? 您需要使用高特异性来覆盖 !important 规则。 尝试向您的选择器添加更多级别。

【讨论】:

  • 我已经尝试过了,但它不起作用...bg-dark { background-color: #e8e4e1 !important; }
  • 请使用有特异性的选择器。
  • 我也尝试过具体的,但它不起作用,我没有得到这个问题的解决方案.. ` header .bg-dark { background-color: #e8e4e1 !important; }`
  • 如果您确认bg-dark 类确实已被应用,您只需要不断增加您的选择器特异性,直到它超过Bootstrap 的。您甚至可以采取愚蠢的做法,例如多次应用同一个类选择器,例如:header .bg-dark.bg-dark { background-color: #e8e4e1 !important; }.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多