document.addEventListener('DOMContentLoaded', function() { const headerScroll = document.querySelector('.header__scroll'); const body = document.body; if (!headerScroll) return; // Функция для проверки ширины экрана (десктоп от 991px) const isDesktop = () => window.innerWidth >= 991; // 1. Логика появления плавающей шапки при скролле window.addEventListener('scroll', function() { // Если экран меньше 991px, скрываем шапку и выходим if (!isDesktop()) { headerScroll.style.display = 'none'; headerScroll.style.opacity = '0'; return; } const scrollPos = window.pageYOffset || document.documentElement.scrollTop; if (scrollPos > 500) { headerScroll.style.display = 'flex'; // Небольшая задержка для плавности появления через CSS transition setTimeout(() => { headerScroll.style.opacity = '1'; }, 10); } else { headerScroll.style.opacity = '0'; setTimeout(() => { // Проверяем условие еще раз перед скрытием display if (window.pageYOffset <= 500 || !isDesktop()) { headerScroll.style.display = 'none'; } }, 400); } }); // 2. Сброс состояний при изменении размера окна window.addEventListener('resize', function() { if (!isDesktop()) { headerScroll.style.display = 'none'; headerScroll.style.opacity = '0'; // Принудительно очищаем стили блокировки, если они остались от старых скриптов body.classList.remove('no-scroll'); body.style.touchAction = 'auto'; body.style.overflow = ''; } }); });