# How to Create a header line that appears when a user scrolls using HTML, CSS, and JavaScript

```html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <style>
   body, html {
  margin: 0;
  padding: 0;
  height: 200%;
  font-family: Arial, sans-serif;
}

.header-line {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 4px;
  background-color: blue;
  transform: translateY(-100%);
  transition: transform 0.3s ease;
}

.content {
  padding: 20px;
}

    </style>
</head>
<body>

  <div class="header-line" id="headerLine"></div>
  <div class="content">
    <!-- Add lots of content here to enable scrolling -->
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque vitae vehicula nunc, in consectetur libero. Nullam id tincidunt risus, eget venenatis lectus. Suspendisse potenti. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Vivamus auctor ligula nec turpis pharetra, in dignissim mauris tempus. Nam vitae ante volutpat, elementum lorem ut, posuere sem. Maecenas eget sem ultricies, consequat mi sed, commodo nisl.</p>
    <!-- Repeat the paragraph above or add more content to allow scrolling -->
  </div>
    
  <script>
 
  window.addEventListener('scroll', () => {
  const headerLine = document.getElementById('headerLine');
  if (window.scrollY > 50) {
    headerLine.style.transform = 'translateY(0)';
  } else {
    headerLine.style.transform = 'translateY(-100%)';
  }
});

 </script>
 
</body>
</html>


  
```

## Explain :

1. **HTML**:
   * We create a `div` element with a class of `header-line` that will act as our header line.
   * We also create a `div` with a class of `content` to contain enough text to make the page scrollable.
2. **CSS**:
   * We set up basic styling for the body and HTML to ensure the page has enough height and a sans-serif font.
   * The `.header-line` class styles the header line to be fixed at the top of the page, with an initial transform property to hide it above the viewport.
   * A smooth transition is set for the transform property to allow the header line to slide down smoothly when the user scrolls.
3. **JavaScript**:
   * We add an event listener for the `scroll` event.
   * In the event handler, we check the `scrollY` property (the number of pixels the document has already been scrolled vertically).
   * If the `scrollY` value is greater than 50 pixels, we set the `transform` property of the header line to `translateY(0)` to slide it into view.
   * If the `scrollY` value is 50 pixels or less, we hide the header line by setting the `transform` property back to `translateY(-100%)`.
