#javascript #jquery #html #css
#javascript #jquery #HTML #css
Вопрос:
итак, вот мой код панели навигации. Я хочу сделать черный фон в меню, а слайд сверху немного короче, могу ли я это сделать? Я пытался что-то сделать в css с помощью класса .shrink, но это ничего не изменило. Также не могли бы вы подсказать мне, как я могу изменить место логотипа в панели навигации при скольжении вниз? Я покажу вам на картинках, как я хочу, чтобы это выглядело.
https://ibb.co/cCh08RD — вот рисунок, поэтому заполнитель — это место, где находится логотип в панели навигации. Я хочу, чтобы при скольжении он опускался ниже, как я пытался его нарисовать, и вместо логотипа я хочу отобразить изображение меню — что-то вроде этих 3 строк. Также я устал рисовать, какой ширины я хотел бы, чтобы это было.
$(window).on('scroll', function() {
if ($(window).scrollTop()) {
$('nav').addClass('shrink');
} else {
$('nav').removeClass('shrink');
}
});
.background {
background-image: url('../images/img1-header.png');
background-repeat: no-repeat;
background-size: cover;
background-position: center;
height: 650px;
width: 100%;
}
#siteNav {
width: 100%;
top: 0;
left: 0;
transition: 0.3s;
display: flex;
flex-direction: row;
justify-content: center;
padding-top: 20px;
padding-bottom: 20px;
}
.shrink {
background: rgba(32, 32, 32);
height: 50px;
position: fixed;
}
.shrink .logo {
transition: 0.3s;
display: flex;
height: 38px;
}
#siteNav ul {
list-style: none;
margin: 0;
padding: 0;
display: flex;
}
#siteNav ul li {
list-style: none;
border-right: 1px solid #fafafa;
padding-top: 10px;
}
#siteNav ul li a {
padding: 0 30px;
text-decoration: none;
transition: 0.3s;
color: #000000;
}
#siteNav ul li:last-child {
border-right: none;
}
header h1 {
text-align: center;
font-family: 'Homenaje', sans-serif;
color: #000000;
font-size: 58px;
padding-top: 130px;
letter-spacing: 3px;
}
header h1 a {
color: #383838;
}
<div class="background">
<nav id="siteNav">
<img class="logo" src="http://placehold.it/40" alt="">
<ul>
<li><a href="#mission">MISSION</a></li>
<li><a href="#clients">CLIENTS</a></li>
<li><a href="#products">PRODUCTS</a></li>
<li><a href="#contact">CONTACT</a></li>
</ul>
</nav>
<header>
<div>
<h1>aaaaaaa <br><a>aaaaaaaaa</a></br>
</h1>
</div>
</header>
</div>
Ответ №1:
function sticktothetop() {
var window_top = $(window).scrollTop();
var top = $('#stick-here').offset().top;
if (window_top > top) {
$('#stickThis').addClass('stick');
$('#stick-here').height($('#stickThis').outerHeight());
} else {
$('#stickThis').removeClass('stick');
$('#stick-here').height(0);
}
}
$(function() {
$(window).scroll(sticktothetop);
sticktothetop();
});
#stickThis {
padding: 20px;
background-color: #ccc;
font-size: 1.5em;
width: 100%;
text-align: center;
font-weight: bold;
}
#stickThis.stick {
margin-top: 0;
padding: 5px;
position: fixed;
top: 0;
text-align: left;
z-index: 9999;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script>
<div id="stick-here"></div>
<div id="stickThis">Sticky note</div>
lorem <br />
lorem <br />
lorem <br />
lorem <br />
lorem <br />
lorem <br />
lorem <br />
lorem <br />
lorem <br />
lorem <br />
lorem <br />
lorem <br />
lorem <br />
lorem <br />
lorem <br />
lorem <br />
lorem <br />
lorem <br />
lorem <br />
lorem <br />
lorem <br />
lorem <br />
lorem <br />
lorem <br />
lorem <br />
lorem <br />
lorem <br />
lorem <br />
lorem <br />
lorem <br />
lorem <br />
lorem <br />
lorem <br />
lorem <br />
lorem <br />
lorem <br />
lorem <br />
lorem <br />
lorem <br />
lorem <br />
lorem <br />
lorem <br />
lorem <br />
lorem <br />
lorem <br />
lorem <br />
lorem <br />
lorem <br />
lorem <br />
lorem <br />
Ответ №2:
Я только что протестировал ваш код, и он работает для меня. Это изменяет фон навигации при прокрутке.
В вашем встроенном коде я вижу следующую ошибку:
Неперехваченная ошибка ссылки: $ не определен
Это происходит потому, что у вас нет ссылок на jQuery / включенных в ваш HTML-документ.
Чтобы навигация при прокрутке немного уменьшалась, просто добавьте к ней верхний край.
Для изменения положения изображения / логотипа при прокрутке вы можете изменить его с помощью position: absolute (и «вырвать его» из потока документов), если вы хотите оставить навигационные ссылки такими, какие они есть, а затем перемещать их по своему усмотрению.