Comment créer : rétrécir le menu de navigation lors du défilement

Apprendre à utiliser CSS et JavaScript pour ajuster la taille de la barre de navigation lors du défilement.

Essayer par vous-même

Comment réduire la barre de navigation lors du défilement

Première étape - Ajouter HTML :

Créer une barre de navigation :

<div id="navbar">
  <a href="#default" id="logo">LogoDeLentreprise</a>
  <div id="navbar-right">
    <a class="active" href="#home">Accueil</a>
    <a href="#contact">Contact</a>
    <a href="#about">À propos</a>
  </div>
</div>

Deuxième étape - Ajouter CSS :

Définir le style de la barre de navigation :

/* Créer une barre de navigation collée/fixed */
#navbar {
  overflow: hidden;
  background-color: #f1f1f1;
  padding: 90px 10px; /* Marge interne plus grande, qui diminue lors du défilement (en utilisant JS) */
  transition: 0.4s; /* Ajouter un effet de transition lorsque la marge interne diminue */
  position: fixed; /* Barre de navigation collée/fixed */
  width: 100%;
  top: 0; /* En haut */
  z-index: 99;
}
/* Définir le style des liens de la barre de navigation */
#navbar a {
  float: left;
  color: black;
  text-align: center;
  padding: 12px;
  text-decoration: none;
  font-size: 18px;
  line-height: 25px;
  border-radius: 4px;
}
/* Définir le style du logo */
#navbar #logo {
  font-size: 35px;
  font-weight: bold;
  transition: 0.4s;
}
/* Définir le style des liens au survol de la souris */
#navbar a:hover {
  background-color: #ddd;
  color: black;
}
/* Définir le style des liens actifs / actuels */
#navbar a.active {
  background-color: dodgerblue;
  color: white;
}
/* Afficher certains liens à droite */
#navbar-right {
  float: right;
}
/* Ajouter la réactivité - Afficher la barre de navigation verticalement plutôt qu'horizontalement sur les écrans de largeur inférieure à 580 pixels */
@media screen and (max-width: 580px) {
  #navbar {
    padding: 20px 10px !important; /* Utiliser !important pour s'assurer que JavaScript ne couvrira pas la marge sur les écrans de petite taille */
  }
  #navbar a {
    float: none;
    display: block;
    text-align: left;
  }
  #navbar-right {
    float: none;
  }
}

Étape 3 - Ajouter JavaScript :

// Lorsque l'utilisateur fait défiler de 80 pixels vers le bas du document, ajuster la marge interne de la barre de navigation et la taille de la police du logo
window.onscroll = function() {scrollFunction()};
function scrollFunction() {
  if (document.body.scrollTop > 80 || document.documentElement.scrollTop > 80) {
    document.getElementById("navbar").style.padding = "30px 10px";
    document.getElementById("logo").style.fontSize = "25px";
  } else {
    document.getElementById("navbar").style.padding = "80px 10px";
    document.getElementById("logo").style.fontSize = "35px";
  }
}

Essayer par vous-même