如何創建:滾動時收縮導航菜單
學習如何使用 CSS 和 JavaScript 在滾動時調整導航欄的大小。
如何在滾動時縮小導航欄
第一步 - 添加 HTML:
創建導航欄:
<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>
第二步 - 添加 CSS:
設置導航欄樣式:
/* 創建粘性/固定導航欄 */ #navbar { overflow: hidden; background-color: #f1f1f1; padding: 90px 10px; /* 較大的內邊距,在滾動時會縮小(使用 JS) */ transition: 0.4s; /* 當內邊距減小時添加過渡效果 */ position: fixed; /* 粘性/固定導航欄 */ width: 100%; top: 0; /* 在頂部 */ z-index: 99; } /* 設置導航欄鏈接的樣式 */ #navbar a { float: left; color: black; text-align: center; padding: 12px; text-decoration: none; font-size: 18px; line-height: 25px; border-radius: 4px; } /* 設置 logo 的樣式 */ #navbar #logo { font-size: 35px; font-weight: bold; transition: 0.4s; } /* 鼠標懸停時鏈接的樣式 */ #navbar a:hover { background-color: #ddd; color: black; } /* 設置活動/當前鏈接的樣式 */ #navbar a.active { background-color: dodgerblue; color: white; } /* 在右側顯示一些鏈接 */ #navbar-right { float: right; } /* 添加響應能力 - 在寬度小于 580 像素的屏幕上,垂直而不是水平顯示導航欄 */ @media screen and (max-width: 580px) { #navbar { padding: 20px 10px !important; /* 使用 !important 以確保 JavaScript 不會在小屏幕上覆蓋內邊距 */ } #navbar a { float: none; display: block; 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"; } }