@wakenbyWork

Можно как то оптимизировать код?

В общем есть нижнее меню (поиск и кнопока фильтра), которое нужно фиксировать:

613b6c1d9a497075894197.png

Написал такую функцию:

function fixed () {
  const headerBottomMobile = document.querySelector('.header-bottom-mobile')
  const header = document.querySelector('.header')

  window.addEventListener('scroll', event => {
    const valueScroll = window.pageYOffset
    const infoBox = headerBottomMobile.getBoundingClientRect()

    if (infoBox.top < 0) {
      header.style.paddingBottom = `${infoBox.height}px`
      headerBottomMobile.classList.add('header-bottom-mobile--fixed')
    }

    if (valueScroll < infoBox.height) {
      header.style.paddingBottom = ''
      headerBottomMobile.classList.remove('header-bottom-mobile--fixed')
    }
  })
}


.header-bottom-mobile {
  &--fixed {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
  }
}


Работает, но при скролле есть задержка фиксации, мини скачек. Есть ли готовый плагин на чистом js? Чтобы все работало плавно))
  • Вопрос задан
  • 109 просмотров
Решения вопроса 1
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
https://developer.mozilla.org/ru/docs/Web/CSS/posi...
Работает, но при скролле есть задержка фиксации, мини скачек
Потому что не нужно делать на JS то что умеет CSS

Ну и в крайнем случае, для таких вещей есть IntersectionObserver
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы