Как узнать, что пользователь прокрутил ниже шапки?

есть сложная динамическая шапка. При скролле необходимо, чтобы её часть(средний этаж) ездил за пользователем. Нужно узнать в какой именно момент этот средний этаж пропадает из поля видимости пользователя(высоты экрана). есть идеи? Лучше на чистом JS.


Ответы (1 шт):

Автор решения: Evgenii
  1. Находим ваш элемент на странице:

    const el = document.querySelector("#My_Header");

  2. пишем функцию для нахождения расстояния вашей шапки до верха страницы (т.к. она не прилегает к верху):

    function offset(el) {
      var rect = el.getBoundingClientRect(),
      scrollTop = window.pageYOffset || document.documentElement.scrollTop;
      return rect.top + scrollTop
    }
    
  3. Навешиваете обработчик событий для прокрутки страницы на window, чтоб понимать, когда необходимо закрепить этаж шап

    window.addEventListener('scroll', function(e) {
        scrollY = window.scrollY; 
        if (scrollY > offset(el)) {
          Ваш код для фиксации шапки (position: fixed и т.д.)
        }
    })
    
→ Ссылка