'How to know if the user has scrolled below the header?

There is a complex dynamic header. When scrolling, it is necessary that its part (middle floor) follows the user. I need to find out at what point this middle floor disappears from the user's field of view (screen height) and when it returns to the top. any ideas? Without jQuery pls



Solution 1:[1]

Here it is with IntersectionObserver:

window.onload = () => {

    const options = {
        root: null,
        rootMargin: '0px',
        threshold: 0
    }

    const observer = new IntersectionObserver((entries, observer) => {
        console.log('Scrolled');
    }, options);

    let header = document.querySelector('header');
    observer.observe(header);
}
* {
  margin: 0;
  padding: 0;
}

body {
  height: 150vh;
}

header {
  height: 150px;
  background-color: orangered;
}
<header>
  Here header
</header>

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Vetos