#javascript #jquery #html #css
#javascript #jquery #HTML #css
Вопрос:
У меня проблемы с моим jQuery или чем-то еще, о чем я понятия не имею. Я пытаюсь изменить цвет моей навигационной панели с белого на полупрозрачный черный цвет. Может кто-нибудь, пожалуйста, помочь объяснить, что я сделал не так, если я поместил что-то не в то место или полностью добавил неправильный текст? Я новичок в этом, поскольку учусь только в 12 классе. Кроме того, это для школьного проекта.
$(window).on('scroll',function(){
if($(window).scrollTop()){
$('nav').addClass('black');
}
else{
$('nav').removeClass('black');
}
})
*{
margin: 0;
padding: 0;
box-sizing: border-box;
}
body{
font-size: 10px;
font-family:'Raleway', sans-serif;
}
nav{
background-color: white;
position: fixed;
width: 100%;
height: 2.5rem;
padding-top: 1rem;
padding-bottom: 1rem;
z-index: 5;
box-shadow: 0 .1rem .3rem rgba(0, 0, 0, 0.247);
}
nav ul{
position: absolute;
top:50%;
left: 50%;
transform: translate(-50%, -50%);
list-style: none;
white-space: nowrap;
}
nav li{
display: inline;
padding: 2rem;
font-size: 1rem;
text-transform: uppercase;
font-weight: bolder;
}
a:link{
text-decoration: none;
color: black;
transition: .3s ease-in-out;
}
a:visited{
text-decoration: none;
color: black;
}
a:hover{
color: rgb(161, 161, 161);
}
nav .black{
background-color: rgba(0, 0, 0, 0.856);
}
nav .black ul li a{
color: white;
}
<head>
<link rel="stylesheet" href="style.css">
<link href="https://fonts.googleapis.com/css?family=Raleway" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Neucha" rel="stylesheet">
<link rel="shortcut icon" type="image/png" href="img/logo.png">
<title>Cole Coffee - One stop shop to suite all your coffee bean needs</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
</head>
<body>
<nav>
<ul>
<li><a href="#our-products">Products</a></li>
<li><a href="about.html" class="about-tab">About Us</a></li>
<li><a href="contact.html" class="contact-tab">Contact Us</a></li>
</ul>
</nav>
<!--The rest of my webpage goes here-->
Ответ №1:
Используйте .black{..}
вместо nav .black{}
ПОЧЕМУ?
например: div p{...}
— Выбирает все <p>
элементы внутри <div>
элементов
$(window).on('scroll',function(){
if($(window).scrollTop()){
$('nav').addClass('black');
}
else{
$('nav').removeClass('black');
}
})
*{
margin: 0;
padding: 0;
box-sizing: border-box;
}
body{
font-size: 10px;
font-family:'Raleway', sans-serif;
}
nav{
background-color: white;
position: fixed;
width: 100%;
height: 2.5rem;
padding-top: 1rem;
padding-bottom: 1rem;
z-index: 5;
box-shadow: 0 .1rem .3rem rgba(0, 0, 0, 0.247);
}
nav ul{
position: absolute;
top:50%;
left: 50%;
transform: translate(-50%, -50%);
list-style: none;
white-space: nowrap;
}
nav li{
display: inline;
padding: 2rem;
font-size: 1rem;
text-transform: uppercase;
font-weight: bolder;
}
a:link{
text-decoration: none;
color: black;
transition: .3s ease-in-out;
}
a:visited{
text-decoration: none;
color: black;
}
a:hover{
color: rgb(161, 161, 161);
}
.black{
background-color: rgba(0, 0, 0, 0.856);
}
.black ul li a{
color: white;
}
.container{
height:500px;
}
<head>
<link rel="stylesheet" href="style.css">
<link href="https://fonts.googleapis.com/css?family=Raleway" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Neucha" rel="stylesheet">
<link rel="shortcut icon" type="image/png" href="img/logo.png">
<title>Cole Coffee - One stop shop to suite all your coffee bean needs</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
</head>
<body>
<nav>
<ul>
<li><a href="#our-products">Products</a></li>
<li><a href="about.html" class="about-tab">About Us</a></li>
<li><a href="contact.html" class="contact-tab">Contact Us</a></li>
</ul>
</nav>
<div class="container"></div>
Ответ №2:
В вашем CSS у вас есть селектор, подобный nav .black
. При этом выбираются все потомки элементов навигации с классом «black». Если вы замените его на nav.black
, вы сможете выбрать все элементы навигации с классом «black», поэтому следует применить ваш стиль.
Редактировать: Кстати, я думаю, вы уже поняли эту часть, но если вы внесете вышеуказанное изменение, а «полупрозрачный черный цвет» все еще не всегда применяется в ожидаемое время, см. https://api.jquery.com/scrollTop
Если полоса прокрутки находится в самом верху или если элемент не прокручивается, это число будет равно 0.
и имейте в виду, что if(0)
значение равно false
.