Я пытаюсь воссоздать эту необычную навигацию с центрированным логотипом и эффектом тени.
Мне удалось заставить эффект JS работать там, где изображение сжимается при прокрутке.
Я получил это далеко, но как мне расположить изображение так, чтобы оно центрировалось по навигационной панели?
Также как мне создать тень под панелью навигации и изображением?
HTML
<nav class="navbar navbar-expand-lg sticky-top navbar-light bg-light
flex-column">
<div class="container">
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse" id="navbarNav">
<ul class="navbar-nav nav-fill w-100">
<li class="nav-item active align-self-center">
<a class="nav-link" href="#">About<span class="sr-only">(current)</span></a>
</li>
<li class="nav-item align-self-center">
<a class="nav-link" href="#">Books</a>
</li>
<li class="nav-item">
<a class="navbar-brand mx-auto" href="index.html"> <img src="https://placeimg.com/640/480/any" class="largeLogo" id="Logo" alt="Star Books"></a>
</li>
<li class="nav-item align-self-center">
<a class="nav-link" href="#">Book Club</a>
</li>
<li class="nav-item align-self-center">
<a class="nav-link" href="#">Contact</a>
</li>
</ul>
</div>
</div>
</nav>
CSS
#Logo {
position: absolute;
transition: all 0.5s;
border-radius: 50%;
}
.largeLogo {
width: 200px;
}
.smallLogo {
width: 100px;
}
JS
window.onscroll = function() {
growShrinkLogo()
};
var Logo = document.getElementById("Logo");
var endOfDocumentTop = 150;
var size = 0;
function growShrinkLogo() {
var scroll = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
if (size == 0 && scroll > endOfDocumentTop) {
Logo.className = 'smallLogo';
size = 1;
} else if (size == 1 && scroll <= endOfDocumentTop) {
Logo.className = 'largeLogo';
size = 0;
}
}
JSFiddle