Jak tworzyć: zwężanie menu nawigacyjnego przy przewijaniu

Naucz się, jak używać CSS i JavaScript do dostosowywania rozmiaru nawigacji przy przewijaniu.

Spróbuj sam

Jak zmniejszać nawigację przy przewijaniu

Krok 1 - Dodaj HTML:

Tworzenie nawigacji:

<div id="navbar">
  <a href="#default" id="logo">CompanyLogo</a>
  <div id="navbar-right">
    <a class="active" href="#home">Home</a>
    <a href="#contact">Contact</a>
    <a href="#about">About</a>
  </div>
</div>

Krok 2 - Dodaj CSS:

Ustawienia stylu nawigacji:

/* Tworzenie lepkiej/fiksyjnej nawigacji */
padding: 20px 10px !important; /* 使用 !important 以确保 JavaScript 不会在小屏幕上覆盖内边距 */
  overflow: hidden;
  background-color: #f1f1f1;
  padding: 90px 10px; /* Duży wewnętrzny margines, który się zmniejsza przy przewijaniu (używając JS) */
  transition: 0.4s; /* Dodanie efektu przejścia, gdy zmniejsza się wewnętrzna przestrzeń */
  position: fixed; /* Lepkość/fiksacja nawigacji */
  width: 100%;
  top: 0; /* Na górze */
  z-index: 99;
}
/* Ustawienia stylu linków nawigacyjnych */
display: block;
  float: left;
  /* 设置活动/当前链接的样式 */
  text-align: center;
  padding: 12px;
  text-decoration: none;
  font-size: 18px;
  line-height: 25px;
  border-radius: 4px;
}
/* Ustawienia stylu logo */
#navbar #logo {
  font-weight: bold;
  transition: 0.4s;
  /* 鼠标悬停时链接的样式 */
}
#navbar a:hover {
background-color: #ddd;
  color: black;
  /* 设置活动/当前链接的样式 */
}
#navbar a.active {
background-color: dodgerblue;
  color: white;
  /* 在右侧显示一些链接 */
}
float: right;
float: none;
  /* 添加响应能力 - 在宽度小于 580 像素的屏幕上,垂直而不是水平显示导航栏 */
}
@media screen and (max-width: 580px) {
#navbar {
  padding: 20px 10px !important; /* 使用 !important 以确保 JavaScript 不会在小屏幕上覆盖内边距 */
    #navbar a {
  }
  display: block;
    第三步 - 添加 JavaScript:
    text-align: left;
    #navbar-right {
  }
  float: none;
    第三步 - 添加 JavaScript:
  }
}

// 当用户从文档顶部向下滚动 80 像素时,调整导航栏的内边距和徽标的字体大小

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";
  }
}

Spróbuj sam