w3.css
스크롤 시 탐색 메뉴 축소
CSS 및 JavaScript를 사용하여 스크롤 시 탐색 표시줄의 크기를 조정하는 방법을 알아보자.
스크롤 시 Navbar를 축소하는 방법
1단계) 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>
2단계) CSS 추가
탐색 모음 스타일을 지정한다.
/* Create a sticky/fixed navbar */ #navbar { overflow: hidden; background-color: #f1f1f1; padding: 90px 10px; /* Large padding which will shrink on scroll (using JS) */ transition: 0.4s; /* Adds a transition effect when the padding is decreased */ position: fixed; /* Sticky/fixed navbar */ width: 100%; top: 0; /* At the top */ z-index: 99; } /* Style the navbar links */ #navbar a { float: left; color: black; text-align: center; padding: 12px; text-decoration: none; font-size: 18px; line-height: 25px; border-radius: 4px; } /* Style the logo */ #navbar #logo { font-size: 35px; font-weight: bold; transition: 0.4s; } /* Links on mouse-over */ #navbar a:hover { background-color: #ddd; color: black; } /* Style the active/current link */ #navbar a.active { background-color: dodgerblue; color: white; } /* Display some links to the right */ #navbar-right { float: right; } /* Add responsiveness - on screens less than 580px wide, display the navbar vertically instead of horizontally */ @media screen and (max-width: 580px) { #navbar { padding: 20px 10px !important; /* Use !important to make sure that JavaScript doesn't override the padding on small screens */ } #navbar a { float: none; display: block; text-align: left; } #navbar-right { float: none; } }
3단계) 자바스크립트 추가
// When the user scrolls down 80px from the top of the document, resize the navbar's padding and the logo's font size 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"; } }
기본 예시
예제 보기참고
W3C School - How TO - Shrink Navigation Menu on Scroll