在我的网站上,我有一个粘性导航栏和3个独立的部分。我想根据背景更改导航中文本的颜色。因此,当背景为黑色时,导航中的文本将为白色。我认为它在JS中是可能的,但我看到了一些只有CSS的解决方案,这对我来说效果不佳。是不是有可能做到这一点? :/
html,
body {
width: 100%;
}
h1 {
font-size: 60pt !important;
font-family: 'Cinzel Decorative', cursive !important;
margin-left: 20px;
}
p {
font-size: 13pt !important;
font-family: 'Cinzel', serif;
}
a {
text-decoration: none !important;
color: #ccc !important;
}
/* Logo */
.logo {
height: 202px;
}
/* NavBar */
nav {
font-size: 18pt;
font-family: 'Cinzel', serif;
}
.nav_text:hover {
border-bottom: 2px solid white;
margin-bottom: -2px;
}
.nav-link {
margin: 0 20px 0 20px;
padding: 0 !important;
color: #fff !important;
text-shadow: -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000;
float: right;
}
.container {
z-index: 2000 !important;
max-width: 144.45px !important;
margin-right: 20px !important;
}
nav ul {
display: block;
position: relative;
list-style: none;
padding-top: 14px !important;
}
.fixed-nav {
position: absolute;
top: 230px;
right: -20px;
left: 0;
z-index: 1030;
}
.sticky-nav {
position: absolute;
top: 0;
z-index: 1020;
right: 0;
left: 50px;
}
/* Sections */
section {
color: white;
height: 100.2vh;
min-height: 900px;
background-position: center;
background-repeat: no-repeat;
background-size: cover;
z-index: -1;
}
.first_section {
margin-top: -254px;
padding-top: 254px;
}
.header-positon {
padding-top: 40%;
}
.replic-positon {
padding-top: 30%;
}
.unic-positon {
padding-top: 5%;
}
.section_text {
padding: 20px;
margin-top: -30px;
}
.red {
background: rgba(232, 0, 40, 0.3);
}
.green {
background: rgba(32, 62, 85, 0.3);
}
.purple {
background: rgba(43, 0, 81, 0.3);
}
@media only screen and (min-width: 440px) {
/* styles for browsers larger than 440px;
*/
.header-positon {
padding-top: 10%;
}
}
@media only screen and (min-width: 555px) {
/* styles for browsers larger than 555px;
*/
.container {
max-width: 429.642px !important;
}
nav ul {
display: block;
position: relative;
}
.sticky-nav {
position: fixed;
top: 0;
z-index: 1020;
}
.fixed-nav {
position: -webkit-sticky;
position: sticky;
top: 98px;
left: 0;
right: 0;
}
.dropdown {
display: block;
}
}
@media only screen and (min-width: 768px) {
/* default iPad screens */
h1 {
margin-left: 0;
}
}
@media only screen and (min-width: 945px) {
/* styles for browsers larger than 555px;
*/
.login-item {
display: none;
}
.container {
max-width: 681.217px !important;
}
.nav-link {
float: none;
}
nav ul {
display: -webkit-inline-flex;
display: -ms-inline-flexbox;
display: inline-flex;
position: static;
}
.fixed-nav {
top: 57px;
left: 0;
}
}
@media only screen and (min-width: 1325px) {
/* styles for browsers larger than 1325px;
*/
.logo {
margin-left: auto;
margin-right: auto;
}
.container {
max-width: 661.217px !important;
margin-right: auto !important;
}
.contact-item {
margin-right: 0 !important;
}
.sticky-nav {
position: -webkit-sticky;
position: sticky;
left: 0;
}
.fixed-nav {
position: fixed;
top: 0;
left: 0;
}
}
@media only screen and (min-width: 1440px) {
/* styles for browsers larger than 1440px;
*/
h1 {
font-size: 90pt !important;
}
.nav-link {
margin: 0 32px 0 32px;
}
.container {
max-width: 751.217px !important;
}
.section_text {
margin-top: -43px;
}
}
@media only screen and (min-width: 1900px) {
/* for sumo sized (mac) screens */
h1 {
font-size: 120pt !important;
}
.nav-link {
margin: 0 63px 0 63px;
}
.container {
max-width: 1005.22px !important;
}
.section_text {
margin-top: -55px;
}
}

<html>
<head>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.3/css/bootstrap.min.css" integrity="sha384-Zug+QiDoJOrZ5t4lssLdxGhVrurbmBWopoEl+M6BdEfwnCJZtKxi1KgxUyJq13dy" crossorigin="anonymous">
<link href="https://use.fontawesome.com/releases/v5.0.6/css/all.css" rel="stylesheet">
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdn.rawgit.com/michalsnik/aos/2.1.1/dist/aos.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.3/js/bootstrap.min.js" integrity="sha384-a5N7Y/aK3qNeh15eJKGWxsqtnX/wWdSZSKp+81YjTmS15nvnvxKHuzaWwXHDli+4" crossorigin="anonymous"></script>
<title>Test</title>
</head>
<body>
<main class="container-fluid p-0 m-0">
<img class="logo d-block pt-0 mt-0 pb-0 mb-0" src="http://brandmark.io/logo-rank/random/pepsi.png" alt="Logo" />
<nav class="container sticky-nav p-0">
<ul class="m-0 pl-0" id="navbar">
<li class="nav-item">
<a class="nav-link ml-0" href="#Home"><span class="nav_text">Home</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#Replic"><span class="nav_text">Repliky</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#Unique"><span class="nav_text">Unikáty</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#Installation"><span class="nav_text">Instalace</span></a>
</li>
<li class="nav-item">
<a class="nav-link contact-item" href="#Contacts"><span class="nav_text">Kontakt</span></a>
</li>
<li class="nav-item login-item">
<a class="nav-link" href="#Login"><span class="nav_text">Login</span></a>
</li>
</ul>
</nav>
<section class="first_section" style="background-image: url('https://picsum.photos/1920/1080/?random'); ">
<div class="row header-positon no-gutters">
<div class="col-xs-12 col-md-4 offset-md-1" data-aos="fade-right">
<h1>Us</h1>
<p class="section_text green">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Libero ex inventore vel error quibusdam animi fugiat, doloribus dolores consectetur nulla deleniti sint blanditiis quod debitis quis vitae officiis tempora numquam.</p>
</div>
</div>
</section>
<section style="background-image: url('https://picsum.photos/1920/1080/?random'); ">
<div class="row replic-positon no-gutters" data-aos="fade-left">
<div class="col-xs-12 col-md-4 offset-md-7">
<h1>Replic</h1>
<p class="section_text red">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Libero ex inventore vel error quibusdam animi fugiat, doloribus dolores consectetur nulla deleniti sint blanditiis quod debitis quis vitae officiis tempora numquam.</p>
</div>
</div>
</section>
<section style="background-image: url('https://picsum.photos/1920/1080/?random'); ">
<div class="row unique-positon no-gutters" data-aos="fade-up">
<div class="col-xs-12 col-md-4 offset-md-1">
<h1>Unique</h1>
<p class="section_text purple">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Libero ex inventore vel error quibusdam animi fugiat, doloribus dolores consectetur nulla deleniti sint blanditiis quod debitis quis vitae officiis tempora numquam.</p>
</div>
</div>
</section>
</main>
</body>
</html>
&#13;
答案 0 :(得分:0)
我的建议是通过跟踪滚动位置来使用一些滚动顶部方法。只要窗口到达某个滚动位置,就可以使用此数据更改文本的颜色。
这是w3schools的一个简单例子
https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_onscroll2
希望这有帮助!