Cześć. Uczę się teraz bootstrapa i zrobiłem menu. Do tego menu dodałem skrypt, żeby przy scrollowaniu menu lekko się chowało do góry z opóźnieniem. No i wszystko działa, tylko, że jak jest schowane, to co jakiś czas się wysuwa, jakby działał jakiś timer i wracał nav do poprzedniego położenia. Co może to powodować? Będę wdzięczny za podpowiedź.
Samo menu jest proste:
<nav class="navbar navbar-expand-lg navbar-dark fixed-top" id="mainNav">
<div class="container">
<a class="navbar-brand js-scroll-trigger mt-4" href="#page-top">
<button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
Menu
<i class="fas fa-bars"></i>
</button>
<div class="collapse navbar-collapse" id="navbarResponsive">
<ul class="navbar-nav ml-auto mt-3">
<li class="nav-item pr-3">
<a class="nav-link js-scroll-trigger active" href="#services">Home</a>
</li>
<li class="nav-item pr-3">
<a class="nav-link js-scroll-trigger active" href="#services">Home</a>
</li>
<li class="nav-item pr-3">
<a class="nav-link js-scroll-trigger active" href="#services">Home</a>
</li>
<li class="nav-item pr-3">
<a class="nav-link js-scroll-trigger active" href="#services">Home</a>
</li>
</ul>
</div>
</div>
</nav>
No i skrypt onscroll
<script>
var prevScrollpos = window.pageYOffset;
window.onscroll = function() {
var currentScrollPos = window.pageYOffset;
if (prevScrollpos > currentScrollPos) {
document.getElementById("topbar").style.top = "0";
document.getElementById("mainNav").style.top = "0";
} else {
document.getElementById("topbar").style.top = "-50px";
document.getElementById("mainNav").style.top = "-30px";
}
prevScrollpos = currentScrollPos;
}
</script>
Na górze jest jeszcze top-bar i on się chowa ładnie i nie powraca do poprzedniej pozycji samoistnie.