How To Shrink a Header on Scroll

Learn how to shrink a header on scroll with CSS and JavaScript

How To Shrink a Header on Scroll

Step 1) Add HTML:

Create a header:

Example

<div id="header">Header</div>

Step 2) Add CSS:

Style the header:

Example

#header {
  background-color: #f1f1f1; /* Grey background */
  padding: 50px 10px; /* Some padding */
  color: black;
  text-align: center; /* Centered text */
  font-size: 90px; /* Big font size */
  font-weight: bold;
  position: fixed; /* Fixed position - sit on top of the page */
  top: 0;
  width: 100%; /* Full width */
  transition: 0.2s; /* Add a transition effect (when scrolling - and font size is decreased) */
}

Step 3) Add JavaScript:

Example

// When the user scrolls down 50px from the top of the document, resize the header's font size
window.onscroll = function() {scrollFunction()};

function scrollFunction() {
  if (document.body.scrollTop > 50 || document.documentElement.scrollTop > 50) {
    document.getElementById("header").style.fontSize = "30px";
  } else {
    document.getElementById("header").style.fontSize = "90px";
  }
}
Try it Yourself »