Почему не прокручивается страница и как это исправить

Чаще всего скролл пропадает из-за того, что на элементе <html> или <body> остался стиль overflow: hidden — его обычно ставят при открытии модального окна или мобильного меню, а после закрытия забывают убрать. Вторая по частоте причина — скрипт, который перехватывает события колеса мыши или касания (wheel, touchmove) и блокирует их через preventDefault().

Как найти причину

  • Откройте инструменты разработчика (F12), выберите вкладку Elements и проверьте вычисленные стили (Computed) для <html> и <body> — ищите overflow: hidden или height: 100% с fixed-позиционированием.
  • Посмотрите вкладку Console: ошибки в JS часто останавливают выполнение скриптов, которые должны были снять блокировку скролла.
  • Временно отключите JavaScript в настройках браузера (или через расширение) и обновите страницу — если скролл появился, дело в скрипте, а не в CSS.

Частые причины отсутствия прокрутки

  • Незакрытое модальное окно, попап или мобильное меню оставило класс с overflow:hidden на body.
  • Плагин плавного скролла (smooth-scroll, парallax-библиотеки) конфликтует с версией jQuery или другим скриптом на странице.
  • Полноэкранный оверлей с большим z-index перекрывает контент и «съедает» события мыши.
  • На мобильных — свойство touch-action: none на родительском контейнере блокирует свайпы.
  • Высота body задана как 100vh вместе с fixed-позиционированием — контент физически некуда скроллить.

Что делать, если сайт не ваш и вы просто читаете страницу

Попробуйте обновить страницу через Ctrl+F5 (сброс кэша), отключить расширения браузера — некоторые блокировщики рекламы ломают верстку и обработчики событий, — а также открыть страницу в другом браузере. Если проблема сохраняется только на конкретном устройстве, проверьте, не включён ли в системе режим уменьшения движения (reduce motion), который иногда некорректно обрабатывается кастомными скролл-скриптами.

Если это ваш сайт: быстрое исправление

  • Удалите или закомментируйте overflow: hidden на html/body в CSS и проверьте JS-код, который добавляет этот стиль динамически при открытии попапов — добавьте туда же логику снятия стиля при закрытии.
  • Найдите все обработчики wheel/touchmove через поиск по коду и убедитесь, что preventDefault вызывается только там, где действительно нужно (например, внутри кастомного слайдера), а не глобально на document.
  • Проверьте порядок подключения библиотек — устаревшие плагины плавной прокрутки часто требуют конкретную версию jQuery и ломаются при обновлении.
Понравилась статья? Поделиться с друзьями: