JSFiddle - React, Tailwind, and code Playground
HTML
<div id="menutop" class="menu">
<nav class="navbar navbar-expand-sm p-0 m-0" aria-label="navbar">
<div class="container-fluid p-0 m-0 align-items-start">
<button class="navbar-toggler navbar-dark m-2" type="button" data-bs-toggle="collapse" data-bs-target="#navbarTop" aria-controls="navbarTop" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div id="navbarTop" class="collapse navbar-collapse justify-content-end p-1 m-0">
<ul class="nav navbar-nav px-3">
<li class="nav-item">
<a class="scrollTo" href="#section1">INTRO</a>
</li>
<li class="nav-item">
<a class="scrollTo" href="#section2">SITES</a>
</li>
<li class="nav-item">
<a class="scrollTo" href="#section3">LDDC</a>
</li>
<li class="nav-item">
<a class="scrollTo" href="#section4">VIDEOS</a>
</li>
<li class="nav-item">
<a class="scrollTo" href="#section5">PHOTOS</a>
</li>
<li class="nav-item">
<a class="scrollTo" href="#section6">ME</a>
</li>
</ul>
</div>
</div>
</nav>
</div>
CSS
body {
background:red;
}
/* nav */
#menutop nav .navbar-nav {
margin:0 10px 0 0 !important;
padding:0 !important;
font-size: 0.8em;
}
#menutop nav .navbar-nav a {
display: block;
color: white;
padding: 10px 6px 10px 0;
line-height: 1.3em !important;
font-family: 'Raleway', sans-serif;
text-align:right;
font-size: 1.3em;
}
#menutop nav .navbar-nav a:hover {
color: white;
filter: brightness(1.75);
}
nav li {
display: inline-block;
overflow:hidden;
vertical-align: middle;
}
nav ul li:last-child {
margin-right:0;
}
nav li a{
display:block;
padding: 8px 0;
position:relative;
font-size:1em;
transition:font-size 0.2s;
}
nav li a::before {
content:"";
width:0;
height:2px;
background:
white;
position:absolute;
bottom:0;
left:50%;
right:0;
transition:all 0.2s;
}
nav li a:hover::before {
min-width:100%;
left:0;
}
/* ------------ */
/* Transitions and class for reduced height */
#menutop,
#menutop .navbar-brand,
#menutop .navbar-brand img,
#menutop nav .navbar-nav,
#menutop nav .navbar-nav a,
#menutop.menu-shrink {
-webkit-transition: all 0.3s; -moz-transition: all 0.3s; transition: all 0.3s;
}
/* ------------ */
/* menu-shrink */
#menutop.menu-shrink {
height: 80px;
}
#menutop.menu-shrink:hover {
background-color: rgba(255,255,255,0.5);
}
#menutop.menu-shrink .navbar-brand {
width: 75px;
padding-left: 4px;
padding-top: 4px;
}
#menutop nav .navbar-nav {
padding-top:15px !important;
}
#menutop.menu-shrink nav .navbar-nav a {
font-size: 1.3em;
color: black;
}
JavaScript
$(function() {
var menutop = $("#menutop");
// au chargement / actualisation de la page
if ($(window).scrollTop() >= 200) {
menutop.addClass("menu-shrink");
} else {
menutop.removeClass("menu-shrink");
}
// au scroll
$(window).scroll(function() {
if ($(window).scrollTop() >= 200) {
menutop.addClass("menu-shrink");
} else {
menutop.removeClass("menu-shrink");
}
});
});